[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [20285] branches/blender2.5/blender/source /blender/python/intern/bpy_rna.c: fix for crash drawing the UI, normally this would cause a memory leak but for some reason it crashed with py2 .6 and not 3.1.
Campbell Barton
ideasman42 at gmail.com
Wed May 20 07:35:53 CEST 2009
Revision: 20285
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=20285
Author: campbellbarton
Date: 2009-05-20 07:35:53 +0200 (Wed, 20 May 2009)
Log Message:
-----------
fix for crash drawing the UI, normally this would cause a memory leak but for some reason it crashed with py2.6 and not 3.1.
Modified Paths:
--------------
branches/blender2.5/blender/source/blender/python/intern/bpy_rna.c
Modified: branches/blender2.5/blender/source/blender/python/intern/bpy_rna.c
===================================================================
--- branches/blender2.5/blender/source/blender/python/intern/bpy_rna.c 2009-05-20 05:33:39 UTC (rev 20284)
+++ branches/blender2.5/blender/source/blender/python/intern/bpy_rna.c 2009-05-20 05:35:53 UTC (rev 20285)
@@ -1843,10 +1843,20 @@
py_class= RNA_struct_py_type_get(ptr->type);
- args = PyTuple_New(1);
- PyTuple_SET_ITEM(args, 0, pyrna_struct_CreatePyObject(ptr));
- py_class_instance = PyObject_Call(py_class, args, NULL);
- Py_DECREF(args);
+ item = pyrna_struct_CreatePyObject(ptr);
+ if(item == NULL) {
+ py_class_instance = NULL;
+ }
+ else if(item == Py_None) { /* probably wont ever happen but possible */
+ Py_DECREF(item);
+ py_class_instance = NULL;
+ }
+ else {
+ args = PyTuple_New(1);
+ PyTuple_SET_ITEM(args, 0, item);
+ py_class_instance = PyObject_Call(py_class, args, NULL);
+ Py_DECREF(args);
+ }
if (py_class_instance) { /* Initializing the class worked, now run its invoke function */
item= PyObject_GetAttrString(py_class, RNA_function_identifier(func));
@@ -1877,8 +1887,8 @@
ret = PyObject_Call(item, args, NULL);
- /* args is decref'd from item */
Py_DECREF(item);
+ Py_DECREF(args);
}
else {
Py_DECREF(py_class_instance);
More information about the Bf-blender-cvs
mailing list