diff options
author | Campbell Barton <ideasman42@gmail.com> | 2021-06-13 07:47:07 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2021-06-13 07:47:07 +0300 |
commit | 9ff4e0068f9a87e22635bbf5f84b4ee973210343 (patch) | |
tree | b3bfb59cbb0412f49e09285d7a96bc7b82b56ba7 /source/blender/editors/object/object_add.c | |
parent | 84e98ba1824359dfd0b7dd011b5766b14fe8c4ff (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/editors/object/object_add.c')
-rw-r--r-- | source/blender/editors/object/object_add.c | 30 |
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); } |