diff options
author | Campbell Barton <ideasman42@gmail.com> | 2017-05-06 16:26:18 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2017-05-06 16:30:21 +0300 |
commit | 5cdd94a58e6bf2282f7b437ada7c2e4196f1791e (patch) | |
tree | 47f2613b077776117ede8a606e3eb424307a4e2b /source/blender/python | |
parent | 0eef40ed514b1370c78be6f6479f1d67cc4de88c (diff) |
Fix PyAPI crash assigning/deleting id-properties
Caused by D113.
Diffstat (limited to 'source/blender/python')
-rw-r--r-- | source/blender/python/intern/bpy_rna.c | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c index dc247f28539..7b9019e202e 100644 --- a/source/blender/python/intern/bpy_rna.c +++ b/source/blender/python/intern/bpy_rna.c @@ -3271,13 +3271,17 @@ static int pyrna_struct_ass_subscript(BPy_StructRNA *self, PyObject *key, PyObje return -1; } - BPy_StructRNA *val = (BPy_StructRNA *)value; - if (val && self->ptr.type && val->ptr.type) { - if (!RNA_struct_idprops_datablock_allowed(self->ptr.type) && - RNA_struct_idprops_contains_datablock(val->ptr.type)) - { - PyErr_SetString(PyExc_TypeError, "bpy_struct[key] = val: datablock id properties not supported for this type"); - return -1; + if (value && BPy_StructRNA_Check(value)) { + BPy_StructRNA *val = (BPy_StructRNA *)value; + if (val && self->ptr.type && val->ptr.type) { + if (!RNA_struct_idprops_datablock_allowed(self->ptr.type) && + RNA_struct_idprops_contains_datablock(val->ptr.type)) + { + PyErr_SetString( + PyExc_TypeError, + "bpy_struct[key] = val: datablock id properties not supported for this type"); + return -1; + } } } |