[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [45534] trunk/blender/source/blender/ python/generic: fix [#30906] dict(prop) crashes if prop is a PropertyGroup with nested PropertyGroup

Campbell Barton ideasman42 at gmail.com
Wed Apr 11 10:37:48 CEST 2012


Revision: 45534
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=45534
Author:   campbellbarton
Date:     2012-04-11 08:37:48 +0000 (Wed, 11 Apr 2012)
Log Message:
-----------
fix [#30906] dict(prop) crashes if prop is a PropertyGroup with nested PropertyGroup

the ID of a python ID property can be NULL.

Modified Paths:
--------------
    trunk/blender/source/blender/python/generic/idprop_py_api.c
    trunk/blender/source/blender/python/generic/idprop_py_api.h

Modified: trunk/blender/source/blender/python/generic/idprop_py_api.c
===================================================================
--- trunk/blender/source/blender/python/generic/idprop_py_api.c	2012-04-11 08:37:38 UTC (rev 45533)
+++ trunk/blender/source/blender/python/generic/idprop_py_api.c	2012-04-11 08:37:48 UTC (rev 45534)
@@ -134,7 +134,8 @@
 
 static PyObject *BPy_IDGroup_repr(BPy_IDProperty *self)
 {
-	return PyUnicode_FromFormat("<bpy id property from \"%s\">", self->id->name);
+	return PyUnicode_FromFormat("<bpy id prop: owner=\"%s\", name=\"%s\", address=%p>",
+	                            self->id ? self->id->name : "<NONE>", self->prop->name, self->prop);
 }
 
 PyObject *BPy_IDGroup_WrapData(ID *id, IDProperty *prop, IDProperty *parent)

Modified: trunk/blender/source/blender/python/generic/idprop_py_api.h
===================================================================
--- trunk/blender/source/blender/python/generic/idprop_py_api.h	2012-04-11 08:37:38 UTC (rev 45533)
+++ trunk/blender/source/blender/python/generic/idprop_py_api.h	2012-04-11 08:37:48 UTC (rev 45534)
@@ -34,7 +34,7 @@
 
 typedef struct BPy_IDProperty {
 	PyObject_VAR_HEAD
-	struct ID *id;
+	struct ID *id;           /* can be NULL */
 	struct IDProperty *prop; /* must be second member */
 	struct IDProperty *parent;
 	PyObject *data_wrap;
@@ -42,7 +42,7 @@
 
 typedef struct BPy_IDArray {
 	PyObject_VAR_HEAD
-	struct ID *id;
+	struct ID *id;            /* can be NULL */
 	struct IDProperty *prop;  /* must be second member */
 } BPy_IDArray;
 




More information about the Bf-blender-cvs mailing list