[Bf-blender-cvs] [5cdd94a58e6] master: Fix PyAPI crash assigning/deleting id-properties

Campbell Barton noreply at git.blender.org
Sat May 6 15:53:11 CEST 2017


Commit: 5cdd94a58e6bf2282f7b437ada7c2e4196f1791e
Author: Campbell Barton
Date:   Sat May 6 23:26:18 2017 +1000
Branches: master
https://developer.blender.org/rB5cdd94a58e6bf2282f7b437ada7c2e4196f1791e

Fix PyAPI crash assigning/deleting id-properties

Caused by D113.

===================================================================

M	source/blender/python/intern/bpy_rna.c

===================================================================

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;
+			}
 		}
 	}




More information about the Bf-blender-cvs mailing list