diff options
author | Campbell Barton <ideasman42@gmail.com> | 2018-06-12 18:36:24 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2018-06-12 18:36:24 +0300 |
commit | 031416c5590828e68090b9e6a10d96a70d537421 (patch) | |
tree | 8f8a3bee5e9b1c5d859024e889dec23db65cb42f /source/blender/python/intern | |
parent | e8dd4cd9cabb76f00838a975627c571a4fccdb18 (diff) | |
parent | b00d84035989d3cef3417ee4f2ca8475c6c2b57a (diff) |
Merge branch 'master' into blender2.8
Diffstat (limited to 'source/blender/python/intern')
-rw-r--r-- | source/blender/python/intern/bpy_rna_callback.c | 30 |
1 files changed, 24 insertions, 6 deletions
diff --git a/source/blender/python/intern/bpy_rna_callback.c b/source/blender/python/intern/bpy_rna_callback.c index 45d556d68e9..7adb1d40fcc 100644 --- a/source/blender/python/intern/bpy_rna_callback.c +++ b/source/blender/python/intern/bpy_rna_callback.c @@ -101,7 +101,10 @@ PyObject *pyrna_callback_add(BPy_StructRNA *self, PyObject *args) if (RNA_struct_is_a(self->ptr.type, &RNA_Region)) { if (cb_event_str) { - if (pyrna_enum_value_from_id(region_draw_mode_items, cb_event_str, &cb_event, "bpy_struct.callback_add()") == -1) { + if (pyrna_enum_value_from_id( + region_draw_mode_items, cb_event_str, + &cb_event, "bpy_struct.callback_add()") == -1) + { return NULL; } } @@ -210,10 +213,16 @@ PyObject *pyrna_callback_classmethod_add(PyObject *UNUSED(self), PyObject *args) return NULL; } - if (pyrna_enum_value_from_id(region_draw_mode_items, cb_event_str, &cb_event, "bpy_struct.callback_add()") == -1) { + if (pyrna_enum_value_from_id( + region_draw_mode_items, cb_event_str, + &cb_event, "bpy_struct.callback_add()") == -1) + { return NULL; } - else if (pyrna_enum_value_from_id(rna_enum_region_type_items, cb_regiontype_str, &cb_regiontype, "bpy_struct.callback_add()") == -1) { + else if (pyrna_enum_value_from_id( + rna_enum_region_type_items, cb_regiontype_str, + &cb_regiontype, "bpy_struct.callback_add()") == -1) + { return NULL; } else { @@ -225,7 +234,10 @@ PyObject *pyrna_callback_classmethod_add(PyObject *UNUSED(self), PyObject *args) else { SpaceType *st = BKE_spacetype_from_id(spaceid); ARegionType *art = BKE_regiontype_from_id(st, cb_regiontype); - + if (art == NULL) { + PyErr_Format(PyExc_TypeError, "region type '%.200s' not in space", cb_regiontype_str); + return NULL; + } handle = ED_region_draw_cb_activate(art, cb_region_draw, (void *)args, cb_event); Py_INCREF(args); } @@ -276,7 +288,10 @@ PyObject *pyrna_callback_classmethod_remove(PyObject *UNUSED(self), PyObject *ar customdata = ED_region_draw_cb_customdata(handle); Py_DECREF((PyObject *)customdata); - if (pyrna_enum_value_from_id(rna_enum_region_type_items, cb_regiontype_str, &cb_regiontype, "bpy_struct.callback_remove()") == -1) { + if (pyrna_enum_value_from_id( + rna_enum_region_type_items, cb_regiontype_str, + &cb_regiontype, "bpy_struct.callback_remove()") == -1) + { return NULL; } else { @@ -288,7 +303,10 @@ PyObject *pyrna_callback_classmethod_remove(PyObject *UNUSED(self), PyObject *ar else { SpaceType *st = BKE_spacetype_from_id(spaceid); ARegionType *art = BKE_regiontype_from_id(st, cb_regiontype); - + if (art == NULL) { + PyErr_Format(PyExc_TypeError, "region type '%.200s' not in space", cb_regiontype_str); + return NULL; + } ED_region_draw_cb_exit(art, handle); } } |