[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [55757] trunk/blender/source/blender: Fix #34856: crash passing an object rather than a mesh to bpy.data.mesh. remove(),
Brecht Van Lommel
brechtvanlommel at pandora.be
Wed Apr 3 15:43:12 CEST 2013
Revision: 55757
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=55757
Author: blendix
Date: 2013-04-03 13:43:12 +0000 (Wed, 03 Apr 2013)
Log Message:
-----------
Fix #34856: crash passing an object rather than a mesh to bpy.data.mesh.remove(),
this should give an error message but it didn't.
Modified Paths:
--------------
trunk/blender/source/blender/makesrna/intern/rna_access.c
trunk/blender/source/blender/python/intern/bpy_rna.c
Modified: trunk/blender/source/blender/makesrna/intern/rna_access.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_access.c 2013-04-03 11:36:48 UTC (rev 55756)
+++ trunk/blender/source/blender/makesrna/intern/rna_access.c 2013-04-03 13:43:12 UTC (rev 55757)
@@ -609,6 +609,9 @@
{
StructRNA *base;
+ if (srna == &RNA_AnyType)
+ return true;
+
if (!type)
return false;
Modified: trunk/blender/source/blender/python/intern/bpy_rna.c
===================================================================
--- trunk/blender/source/blender/python/intern/bpy_rna.c 2013-04-03 11:36:48 UTC (rev 55756)
+++ trunk/blender/source/blender/python/intern/bpy_rna.c 2013-04-03 13:43:12 UTC (rev 55757)
@@ -1778,8 +1778,10 @@
if (flag & PROP_THICK_WRAP) {
if (value == Py_None)
memset(data, 0, sizeof(PointerRNA));
+ else if (RNA_struct_is_a(param->ptr.type, ptr_type))
+ *((PointerRNA *)data) = param->ptr;
else
- *((PointerRNA *)data) = param->ptr;
+ raise_error = true;
}
else {
/* for function calls, we sometimes want to pass the 'ptr' directly,
@@ -1787,8 +1789,10 @@
BLI_assert(value_new == NULL);
if (value == Py_None)
*((void **)data) = NULL;
+ else if (RNA_struct_is_a(param->ptr.type, ptr_type))
+ *((PointerRNA **)data) = ¶m->ptr;
else
- *((PointerRNA **)data) = ¶m->ptr;
+ raise_error = true;
}
}
else if (value == Py_None) {
More information about the Bf-blender-cvs
mailing list