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>2010-02-22 11:27:45 +0300
committerCampbell Barton <ideasman42@gmail.com>2010-02-22 11:27:45 +0300
commite31d0198e67b28d925ee8164efe8971dba8721b1 (patch)
treeb68a822cb21e44b6ccc67cbf9833cd13a3c6d321 /source/blender/python
parent2bfee787a6b2a8884344ef4ef460a4f83da8262d (diff)
exclude self references from the ID search list when PROP_ID_SELF_CHECK is set, also raise an error from python if this is attempted
Diffstat (limited to 'source/blender/python')
-rw-r--r--source/blender/python/intern/bpy_rna.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c
index 691010ade0d..29c262d5815 100644
--- a/source/blender/python/intern/bpy_rna.c
+++ b/source/blender/python/intern/bpy_rna.c
@@ -886,6 +886,9 @@ int pyrna_py_to_prop(PointerRNA *ptr, PropertyRNA *prop, ParameterList *parms, v
} else if((flag & PROP_NEVER_NULL) && value == Py_None) {
PyErr_Format(PyExc_TypeError, "%.200s does not support a 'None' assignment %.200s type", error_prefix, RNA_struct_identifier(ptype));
return -1;
+ } else if(value != Py_None && ((flag & PROP_ID_SELF_CHECK) && ptr->id.data == ((BPy_StructRNA*)value)->ptr.id.data)) {
+ PyErr_Format(PyExc_TypeError, "%.200s ID type does not support assignment to its self", error_prefix);
+ return -1;
} else {
BPy_StructRNA *param= (BPy_StructRNA*)value;
int raise_error= FALSE;