From 91e020eea9639271bcf146d82cfe1ef998a37496 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 3 Oct 2013 05:27:39 +0000 Subject: fix [#36924] Calling .define(...) on Macro subclass crashes Blender, if subclass wasn't registered --- source/blender/python/intern/bpy_operator_wrap.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'source/blender/python/intern/bpy_operator_wrap.c') 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; } -- cgit v1.2.3