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>2012-04-11 12:37:48 +0400
committerCampbell Barton <ideasman42@gmail.com>2012-04-11 12:37:48 +0400
commit85908b498b387ace3a0be2dfb321968b7a3a9cd1 (patch)
tree633dcc7a35702ac56ff4bde4e6b504f4b2113593 /source/blender/python
parente5579ac505d9947c71e816593ea77150c89ff430 (diff)
fix [#30906] dict(prop) crashes if prop is a PropertyGroup with nested PropertyGroup
the ID of a python ID property can be NULL.
Diffstat (limited to 'source/blender/python')
-rw-r--r--source/blender/python/generic/idprop_py_api.c3
-rw-r--r--source/blender/python/generic/idprop_py_api.h4
2 files changed, 4 insertions, 3 deletions
diff --git a/source/blender/python/generic/idprop_py_api.c b/source/blender/python/generic/idprop_py_api.c
index 63b8d90b510..cd2b1fb148e 100644
--- a/source/blender/python/generic/idprop_py_api.c
+++ b/source/blender/python/generic/idprop_py_api.c
@@ -134,7 +134,8 @@ static Py_hash_t BPy_IDGroup_hash(BPy_IDProperty *self)
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)
diff --git a/source/blender/python/generic/idprop_py_api.h b/source/blender/python/generic/idprop_py_api.h
index f053f212a23..35b130d005e 100644
--- a/source/blender/python/generic/idprop_py_api.h
+++ b/source/blender/python/generic/idprop_py_api.h
@@ -34,7 +34,7 @@ struct BPy_IDGroup_Iter;
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_IDProperty {
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;