[Bf-blender-cvs] [ca856bbe21b] override-recursive-resync: Cleanup: avoid the possibility of 'enter_editmode' being left unset

Campbell Barton noreply at git.blender.org
Mon Jun 14 16:35:02 CEST 2021


Commit: ca856bbe21bac256611a56de507c25a4686e09cb
Author: Campbell Barton
Date:   Sun Jun 13 14:47:07 2021 +1000
Branches: override-recursive-resync
https://developer.blender.org/rBca856bbe21bac256611a56de507c25a4686e09cb

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.

===================================================================

M	source/blender/editors/object/object_add.c

===================================================================

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);
       }



More information about the Bf-blender-cvs mailing list