Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2021-06-13 07:47:07 +0300
committerCampbell Barton <ideasman42@gmail.com>2021-06-13 07:47:07 +0300
commit9ff4e0068f9a87e22635bbf5f84b4ee973210343 (patch)
treeb3bfb59cbb0412f49e09285d7a96bc7b82b56ba7 /source/blender
parent84e98ba1824359dfd0b7dd011b5766b14fe8c4ff (diff)
Cleanup: avoid the possibility of 'enter_editmode' being left unset
While in practice this isn't an issue currently, always set 'enter_editmode' in ED_object_add_generic_get_opts to avoid problems in the future.
Diffstat (limited to 'source/blender')
-rw-r--r--source/blender/editors/object/object_add.c30
1 files changed, 18 insertions, 12 deletions
diff --git a/source/blender/editors/object/object_add.c b/source/blender/editors/object/object_add.c
index 166d168471f..2256dee20cb 100644
--- a/source/blender/editors/object/object_add.c
+++ b/source/blender/editors/object/object_add.c
@@ -463,21 +463,25 @@ bool ED_object_add_generic_get_opts(bContext *C,
ushort *local_view_bits,
bool *is_view_aligned)
{
- PropertyRNA *prop;
-
- /* Switch to Edit mode? optional prop */
- if ((prop = RNA_struct_find_property(op->ptr, "enter_editmode"))) {
+ /* Edit Mode! (optional) */
+ {
bool _enter_editmode;
if (!enter_editmode) {
enter_editmode = &_enter_editmode;
}
+ /* Only to ensure the value is _always_ set.
+ * Typically the property will exist when the argument is non-NULL. */
+ *enter_editmode = false;
- if (RNA_property_is_set(op->ptr, prop) && enter_editmode) {
- *enter_editmode = RNA_property_boolean_get(op->ptr, prop);
- }
- else {
- *enter_editmode = (U.flag & USER_ADD_EDITMODE) != 0;
- RNA_property_boolean_set(op->ptr, prop, *enter_editmode);
+ PropertyRNA *prop = RNA_struct_find_property(op->ptr, "enter_editmode");
+ if (prop != NULL) {
+ if (RNA_property_is_set(op->ptr, prop) && enter_editmode) {
+ *enter_editmode = RNA_property_boolean_get(op->ptr, prop);
+ }
+ else {
+ *enter_editmode = (U.flag & USER_ADD_EDITMODE) != 0;
+ RNA_property_boolean_set(op->ptr, prop, *enter_editmode);
+ }
}
}
@@ -522,7 +526,7 @@ bool ED_object_add_generic_get_opts(bContext *C,
}
else {
int alignment = ALIGN_WORLD;
- prop = RNA_struct_find_property(op->ptr, "align");
+ PropertyRNA *prop = RNA_struct_find_property(op->ptr, "align");
if (RNA_property_is_set(op->ptr, prop)) {
/* If alignment is set, always use it. */
@@ -574,7 +578,9 @@ bool ED_object_add_generic_get_opts(bContext *C,
/* For now this is optional, we can make it always use. */
copy_v3_fl(scale, 1.0f);
- if ((prop = RNA_struct_find_property(op->ptr, "scale"))) {
+
+ PropertyRNA *prop = RNA_struct_find_property(op->ptr, "scale");
+ if (prop != NULL) {
if (RNA_property_is_set(op->ptr, prop)) {
RNA_property_float_get_array(op->ptr, prop, scale);
}