[Bf-blender-cvs] [ce68888d1bf] master: Cleanup: reduce indentation in bpy.props
Campbell Barton
noreply at git.blender.org
Wed Jul 28 05:39:27 CEST 2021
Commit: ce68888d1bfe9ecae72207a9082c327fda07bce1
Author: Campbell Barton
Date: Wed Jul 28 12:45:44 2021 +1000
Branches: master
https://developer.blender.org/rBce68888d1bfe9ecae72207a9082c327fda07bce1
Cleanup: reduce indentation in bpy.props
Remove unnecessary NULL checks.
===================================================================
M source/blender/python/intern/bpy_props.c
===================================================================
diff --git a/source/blender/python/intern/bpy_props.c b/source/blender/python/intern/bpy_props.c
index c6d81c788ff..b63e7863f79 100644
--- a/source/blender/python/intern/bpy_props.c
+++ b/source/blender/python/intern/bpy_props.c
@@ -2231,27 +2231,33 @@ static void bpy_prop_callback_assign_enum(struct PropertyRNA *prop,
/** \name Shared Method Utilities
* \{ */
-/* this define runs at the start of each function and deals with
- * returning a deferred property (to be registered later) */
+/**
+ * This define runs at the start of each function and deals with
+ * returning a deferred property #BPy_PropDeferred (to be registered later).
+ *
+ * \note `srna` will always be left set if this function doesn't return.
+ */
#define BPY_PROPDEF_HEAD(_func) \
- if (PyTuple_GET_SIZE(args) == 1) { \
- PyObject *ret; \
- self = PyTuple_GET_ITEM(args, 0); \
- args = PyTuple_New(0); \
- ret = BPy_##_func(self, args, kw); \
- Py_DECREF(args); \
- return ret; \
- } \
- if (PyTuple_GET_SIZE(args) > 1) { \
- PyErr_SetString(PyExc_ValueError, "all args must be keywords"); \
- return NULL; \
- } \
- srna = srna_from_self(self, #_func "(...):"); \
- if (srna == NULL) { \
- if (PyErr_Occurred()) { \
+ { \
+ const int args_len = PyTuple_GET_SIZE(args); \
+ if (args_len == 1) { \
+ self = PyTuple_GET_ITEM(args, 0); \
+ args = PyTuple_New(0); \
+ PyObject *ret = BPy_##_func(self, args, kw); \
+ Py_DECREF(args); \
+ return ret; \
+ } \
+ if (args_len > 1) { \
+ PyErr_SetString(PyExc_ValueError, "all args must be keywords"); \
return NULL; \
} \
- return bpy_prop_deferred_data_CreatePyObject(pymeth_##_func, kw); \
+ srna = srna_from_self(self, #_func "(...):"); \
+ if (srna == NULL) { \
+ if (PyErr_Occurred()) { \
+ return NULL; \
+ } \
+ return bpy_prop_deferred_data_CreatePyObject(pymeth_##_func, kw); \
+ } \
} \
(void)0
@@ -2430,96 +2436,95 @@ PyDoc_STRVAR(BPy_BoolProperty_doc,
BPY_PROPDEF_SET_DOC);
static PyObject *BPy_BoolProperty(PyObject *self, PyObject *args, PyObject *kw)
{
+ /* Keep this block first. */
StructRNA *srna;
-
BPY_PROPDEF_HEAD(BoolProperty);
+ BLI_assert(srna != NULL);
+
+ const char *id = NULL, *name = NULL, *description = "";
+ Py_ssize_t id_len;
+ bool def = false;
+ PropertyRNA *prop;
+ PyObject *pyopts = NULL;
+ PyObject *pyopts_override = NULL;
+ int opts = 0;
+ int opts_override = 0;
+ int prop_tags = 0;
+ const char *pysubtype = NULL;
+ int subtype = PROP_NONE;
+ PyObject *update_fn = NULL;
+ PyObject *get_fn = NULL;
+ PyObject *set_fn = NULL;
+ PyObject *py_tags = NULL;
- if (srna) {
- const char *id = NULL, *name = NULL, *description = "";
- Py_ssize_t id_len;
- bool def = false;
- PropertyRNA *prop;
- PyObject *pyopts = NULL;
- PyObject *pyopts_override = NULL;
- int opts = 0;
- int opts_override = 0;
- int prop_tags = 0;
- const char *pysubtype = NULL;
- int subtype = PROP_NONE;
- PyObject *update_fn = NULL;
- PyObject *get_fn = NULL;
- PyObject *set_fn = NULL;
- PyObject *py_tags = NULL;
-
- static const char *_keywords[] = {
- "attr",
- "name",
- "description",
- "default",
- "options",
- "override",
- "tags",
- "subtype",
- "update",
- "get",
- "set",
- NULL,
- };
- static _PyArg_Parser _parser = {"s#|$ssO&O!O!O!sOOO:BoolProperty", _keywords, 0};
- if (!_PyArg_ParseTupleAndKeywordsFast(args,
- kw,
- &_parser,
- &id,
- &id_len,
- &name,
- &description,
- PyC_ParseBool,
- &def,
- &PySet_Type,
- &pyopts,
- &PySet_Type,
- &pyopts_override,
- &PySet_Type,
- &py_tags,
- &pysubtype,
- &update_fn,
- &get_fn,
- &set_fn)) {
- return NULL;
- }
+ static const char *_keywords[] = {
+ "attr",
+ "name",
+ "description",
+ "default",
+ "options",
+ "override",
+ "tags",
+ "subtype",
+ "update",
+ "get",
+ "set",
+ NULL,
+ };
+ static _PyArg_Parser _parser = {"s#|$ssO&O!O!O!sOOO:BoolProperty", _keywords, 0};
+ if (!_PyArg_ParseTupleAndKeywordsFast(args,
+ kw,
+ &_parser,
+ &id,
+ &id_len,
+ &name,
+ &description,
+ PyC_ParseBool,
+ &def,
+ &PySet_Type,
+ &pyopts,
+ &PySet_Type,
+ &pyopts_override,
+ &PySet_Type,
+ &py_tags,
+ &pysubtype,
+ &update_fn,
+ &get_fn,
+ &set_fn)) {
+ return NULL;
+ }
- BPY_PROPDEF_SUBTYPE_CHECK(BoolProperty,
- property_flag_items,
- property_flag_override_items,
- property_subtype_number_items);
+ BPY_PROPDEF_SUBTYPE_CHECK(BoolProperty,
+ property_flag_items,
+ property_flag_override_items,
+ property_subtype_number_items);
- if (bpy_prop_callback_check(update_fn, "update", 2) == -1) {
- return NULL;
- }
- if (bpy_prop_callback_check(get_fn, "get", 1) == -1) {
- return NULL;
- }
- if (bpy_prop_callback_check(set_fn, "set", 2) == -1) {
- return NULL;
- }
+ if (bpy_prop_callback_check(update_fn, "update", 2) == -1) {
+ return NULL;
+ }
+ if (bpy_prop_callback_check(get_fn, "get", 1) == -1) {
+ return NULL;
+ }
+ if (bpy_prop_callback_check(set_fn, "set", 2) == -1) {
+ return NULL;
+ }
- prop = RNA_def_property(srna, id, PROP_BOOLEAN, subtype);
- RNA_def_property_boolean_default(prop, def);
- RNA_def_property_ui_text(prop, name ? name : id, description);
+ prop = RNA_def_property(srna, id, PROP_BOOLEAN, subtype);
+ RNA_def_property_boolean_default(prop, def);
+ RNA_def_property_ui_text(prop, name ? name : id, description);
- if (py_tags) {
- RNA_def_property_tags(prop, prop_tags);
- }
- if (pyopts) {
- bpy_prop_assign_flag(prop, opts);
- }
- if (pyopts_override) {
- bpy_prop_assign_flag_override(prop, opts_override);
- }
- bpy_prop_callback_assign_update(prop, update_fn);
- bpy_prop_callback_assign_boolean(prop, get_fn, set_fn);
- RNA_def_property_duplicate_pointers(srna, prop);
+ if (py_tags) {
+ RNA_def_property_tags(prop, prop_tags);
+ }
+ if (pyopts) {
+ bpy_prop_assign_flag(prop, opts);
+ }
+ if (pyopts_override) {
+ bpy_prop_assign_flag_override(prop, opts_override);
}
+ bpy_prop_callback_assign_update(prop, update_fn);
+ bpy_prop_callback_assign_boolean(prop, get_fn, set_fn);
+ RNA_def_property_duplicate_pointers(srna, prop);
Py_RETURN_NONE;
}
@@ -2546,123 +2551,122 @@ PyDoc_STRVAR(
BPY_PROPDEF_UPDATE_DOC BPY_PROPDEF_GET_DOC BPY_PROPDEF_SET_DOC);
static PyObject *BPy_BoolVectorProperty(PyObject *self, PyObject *args, PyObject *kw)
{
+ /* Keep this block first. */
StructRNA *srna;
-
BPY_PROPDEF_HEAD(BoolVectorProperty);
+ BLI_assert(srna != NULL);
+
+ const char *id = NULL, *name = NULL, *description = "";
+ Py_ssize_t id_len;
+ bool def[PYRNA_STACK_ARRAY] = {0};
+ int size = 3;
+ PropertyRNA *prop;
+ PyObject *pydef = NULL;
+ PyObject *pyopts = NULL;
+ PyObject *pyopts_override = NULL;
+ int opts = 0;
+ int opts_override = 0;
+ int prop_tags = 0;
+ const char *pysubtype = NULL;
+ int subtype = PROP_NONE;
+ PyObject *update_fn = NULL;
+ PyObject *get_fn = NULL;
+ PyObject *set_fn = NULL;
+ PyObject *py_tags = NULL;
- if (srna) {
- const char *id = NULL, *name = NULL, *description = "";
- Py_ssize_t id_len;
- bool def[PYRNA_STACK_ARRAY] = {0};
- int size = 3;
- PropertyRNA *prop;
- PyObject *pydef = NULL;
- PyObject *pyopts = NULL;
- PyObject *pyopts_override = NULL;
- int opts = 0;
- int opts_override = 0;
- int prop_tags = 0;
- const char *pysubtype = NULL;
- int subtype = PROP_NONE;
- PyObject *update_fn = NULL;
- PyObject *get_fn = NULL;
- PyObject *set_fn = NULL;
- PyObject *py_tags = NULL;
-
- static const char *_keywords[] = {
- "attr",
- "name",
- "description",
- "default",
- "options",
- "override",
- "tags",
- "subtype",
- "size",
- "update",
- "get",
- "set",
- NULL,
- };
- static _PyArg_Parser _parser = {"s#|$ssOO!O!O!siOOO:BoolVectorProperty", _keywords, 0};
- if (!_PyArg_ParseTupleAndKeywordsFast(args,
- kw,
- &_parser,
- &id,
- &id_len,
- &name,
- &description,
- &pydef,
- &PySet_Ty
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list