diff options
author | Campbell Barton <ideasman42@gmail.com> | 2013-10-03 09:27:39 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2013-10-03 09:27:39 +0400 |
commit | 91e020eea9639271bcf146d82cfe1ef998a37496 (patch) | |
tree | afc8ed184c5f1f00ee937c1bafc026f1b72b1a85 /source/blender | |
parent | 5568b6308713922b6a9371a4608fd899bc5d1fa4 (diff) |
fix [#36924] Calling .define(...) on Macro subclass crashes Blender, if subclass wasn't registered
Diffstat (limited to 'source/blender')
-rw-r--r-- | source/blender/python/intern/bpy_operator_wrap.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/source/blender/python/intern/bpy_operator_wrap.c b/source/blender/python/intern/bpy_operator_wrap.c index 65b7bf62032..efee9b13d58 100644 --- a/source/blender/python/intern/bpy_operator_wrap.c +++ b/source/blender/python/intern/bpy_operator_wrap.c @@ -177,14 +177,17 @@ PyObject *PYOP_wrap_macro_define(PyObject *UNUSED(self), PyObject *args) } /* identifiers */ - srna = srna_from_self(macro, "Macro Define:"); - macroname = RNA_struct_identifier(srna); + srna = pyrna_struct_as_srna((PyObject *)macro, false, "Macro Define:"); + if (srna == NULL) { + return NULL; + } + macroname = RNA_struct_identifier(srna); ot = WM_operatortype_find(macroname, true); if (!ot) { PyErr_Format(PyExc_ValueError, - "Macro Define: '%s' is not a valid macro or hasn't been registered yet", + "Macro Define: '%s' is not a valid macro", macroname); return NULL; } |