forked from bartvdbraak/blender
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.
This commit is contained in:
parent
07677e836f
commit
13ec0cd6c3
@ -609,6 +609,9 @@ bool RNA_struct_is_a(StructRNA *type, StructRNA *srna)
|
||||
{
|
||||
StructRNA *base;
|
||||
|
||||
if (srna == &RNA_AnyType)
|
||||
return true;
|
||||
|
||||
if (!type)
|
||||
return false;
|
||||
|
||||
|
@ -1778,8 +1778,10 @@ static int pyrna_py_to_prop(PointerRNA *ptr, PropertyRNA *prop, void *data, PyOb
|
||||
if (flag & PROP_THICK_WRAP) {
|
||||
if (value == Py_None)
|
||||
memset(data, 0, sizeof(PointerRNA));
|
||||
else
|
||||
else if (RNA_struct_is_a(param->ptr.type, ptr_type))
|
||||
*((PointerRNA *)data) = param->ptr;
|
||||
else
|
||||
raise_error = true;
|
||||
}
|
||||
else {
|
||||
/* for function calls, we sometimes want to pass the 'ptr' directly,
|
||||
@ -1787,8 +1789,10 @@ static int pyrna_py_to_prop(PointerRNA *ptr, PropertyRNA *prop, void *data, PyOb
|
||||
BLI_assert(value_new == NULL);
|
||||
if (value == Py_None)
|
||||
*((void **)data) = NULL;
|
||||
else
|
||||
else if (RNA_struct_is_a(param->ptr.type, ptr_type))
|
||||
*((PointerRNA **)data) = ¶m->ptr;
|
||||
else
|
||||
raise_error = true;
|
||||
}
|
||||
}
|
||||
else if (value == Py_None) {
|
||||
|
Loading…
Reference in New Issue
Block a user