Cleanup: move params into their own struct
This commit is contained in:
@@ -361,8 +361,6 @@ PyObject *pyrna_callback_classmethod_remove(PyObject *UNUSED(self), PyObject *ar
|
||||
void *handle;
|
||||
void *customdata;
|
||||
StructRNA *srna;
|
||||
const char *cb_regiontype_str;
|
||||
int cb_regiontype;
|
||||
|
||||
if (PyTuple_GET_SIZE(args) < 2) {
|
||||
PyErr_SetString(PyExc_ValueError, "callback_remove(handler): expected at least 2 args");
|
||||
@@ -381,8 +379,9 @@ PyObject *pyrna_callback_classmethod_remove(PyObject *UNUSED(self), PyObject *ar
|
||||
}
|
||||
|
||||
if (srna == &RNA_WindowManager) {
|
||||
if (!PyArg_ParseTuple(args, "OO!:WindowManager.draw_cursor_remove",
|
||||
&cls, &PyCapsule_Type, &py_handle))
|
||||
if (!PyArg_ParseTuple(
|
||||
args, "OO!:WindowManager.draw_cursor_remove",
|
||||
&cls, &PyCapsule_Type, &py_handle))
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
@@ -396,9 +395,17 @@ PyObject *pyrna_callback_classmethod_remove(PyObject *UNUSED(self), PyObject *ar
|
||||
Py_DECREF((PyObject *)customdata);
|
||||
}
|
||||
else if (RNA_struct_is_a(srna, &RNA_Space)) {
|
||||
if (!PyArg_ParseTuple(args, "OO!s:Space.draw_handler_remove",
|
||||
&cls, &PyCapsule_Type, &py_handle, /* already assigned, no matter */
|
||||
&cb_regiontype_str))
|
||||
const char *error_prefix = "Space.draw_handler_remove";
|
||||
struct {
|
||||
const char *region_type_str;
|
||||
|
||||
int region_type;
|
||||
} params;
|
||||
|
||||
if (!PyArg_ParseTuple(
|
||||
args, "OO!s:Space.draw_handler_remove",
|
||||
&cls, &PyCapsule_Type, &py_handle, /* already assigned, no matter */
|
||||
¶ms.region_type_str))
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
@@ -407,8 +414,8 @@ PyObject *pyrna_callback_classmethod_remove(PyObject *UNUSED(self), PyObject *ar
|
||||
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)
|
||||
rna_enum_region_type_items, params.region_type_str,
|
||||
¶ms.region_type, error_prefix) == -1)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
@@ -420,9 +427,9 @@ 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);
|
||||
ARegionType *art = BKE_regiontype_from_id(st, params.region_type);
|
||||
if (art == NULL) {
|
||||
PyErr_Format(PyExc_TypeError, "region type '%.200s' not in space", cb_regiontype_str);
|
||||
PyErr_Format(PyExc_TypeError, "region type '%.200s' not in space", params.region_type_str);
|
||||
return NULL;
|
||||
}
|
||||
ED_region_draw_cb_exit(art, handle);
|
||||
|
Reference in New Issue
Block a user