Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2009-04-18 00:06:06 +0400
committerCampbell Barton <ideasman42@gmail.com>2009-04-18 00:06:06 +0400
commitdf8cf26404c7e922751643b1095e38f1ab430811 (patch)
treeb4258cc6c90913c379f5cdd05edebd8785230647 /source/gameengine/Expressions/Value.cpp
parent90c6cf77f10961de756f6ff06329d3fa65ce3da4 (diff)
Added m_zombie to the base python class (PyObjectPlus), when this is set all the subclasses will raise an error on access to their members.
Other small changes... - KX_Camera and KX_Light didnt have get/setitem access in their PyType definition. - CList.from_id() error checking for a long was checking for -1 against an unsigned value (own fault) - CValue::SpecialRelease was incrementing an int for no reason. - renamed m_attrlist to m_attr_dict since its a PyDict type. - removed custom getattro/setattro functions for KX_Scene and KX_GameObject, use py_base_getattro, py_base_setattro for all subclasses of PyObjectPlus. - lowercase windows.h in VideoBase.cpp for cross compiling.
Diffstat (limited to 'source/gameengine/Expressions/Value.cpp')
-rw-r--r--source/gameengine/Expressions/Value.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/source/gameengine/Expressions/Value.cpp b/source/gameengine/Expressions/Value.cpp
index b8b7a05aa64..e969f0c33aa 100644
--- a/source/gameengine/Expressions/Value.cpp
+++ b/source/gameengine/Expressions/Value.cpp
@@ -602,6 +602,12 @@ int CValue::Release()
// Decrease local reference count, if it reaches 0 the object should be freed
if (--m_refcount > 0)
{
+ // Benoit suggest this as a way to automatically set the zombie flag, but I couldnt get it working - Campbell
+ /*
+ if (m_refcount == 1 && ob_refcnt > 1)
+ SetZombie(true); // the remaining refcount is held by Python!!
+ */
+
// Reference count normal, return new reference count
return m_refcount;
}
@@ -609,6 +615,7 @@ int CValue::Release()
{
// Reference count reached 0, delete ourselves and return 0
// MT_assert(m_refcount==0, "Reference count reached sub-zero, object released too much");
+
delete this;
return 0;
}