[Bf-blender-cvs] [442236d9ea9] refactor-idprop-ui-data: Add function to fill default array from doubles, simplify a bit

Hans Goudey noreply at git.blender.org
Thu Aug 5 21:01:50 CEST 2021


Commit: 442236d9ea938ae387ed49a17a118b318a7c178f
Author: Hans Goudey
Date:   Thu Aug 5 12:47:10 2021 -0500
Branches: refactor-idprop-ui-data
https://developer.blender.org/rB442236d9ea938ae387ed49a17a118b318a7c178f

Add function to fill default array from doubles, simplify a bit

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

M	source/blender/makesrna/intern/rna_access.c

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

diff --git a/source/blender/makesrna/intern/rna_access.c b/source/blender/makesrna/intern/rna_access.c
index c820398dc1b..4daa2e09ff1 100644
--- a/source/blender/makesrna/intern/rna_access.c
+++ b/source/blender/makesrna/intern/rna_access.c
@@ -2897,6 +2897,26 @@ static void rna_property_float_fill_default_array_values(
   }
 }
 
+/**
+ * The same logic as #rna_property_float_fill_default_array_values for a double array.
+ */
+static void rna_property_float_fill_default_array_values_double(const double *default_array,
+                                                                const int default_array_len,
+                                                                const double default_value,
+                                                                const int out_length,
+                                                                float *r_values)
+{
+  const int array_copy_len = MIN2(out_length, default_array_len);
+
+  for (int i = 0; i < array_copy_len; i++) {
+    r_values[i] = (float)default_array[i];
+  }
+
+  for (int i = array_copy_len; i < out_length; i++) {
+    r_values[i] = (float)default_value;
+  }
+}
+
 static void rna_property_float_get_default_array_values(PointerRNA *ptr,
                                                         FloatPropertyRNA *fprop,
                                                         float *r_values)
@@ -3139,18 +3159,11 @@ void RNA_property_float_get_default_array(PointerRNA *ptr, PropertyRNA *prop, fl
       BLI_assert(idprop->type == IDP_ARRAY);
       BLI_assert(ELEM(idprop->subtype, IDP_FLOAT, IDP_DOUBLE));
       const IDPropertyUIDataFloat *ui_data = (const IDPropertyUIDataFloat *)idprop->ui_data;
-      if (ui_data->default_array) {
-        /* A version of #rna_property_float_fill_default_array_values for a double array. */
-        const double *default_array = ui_data->default_array;
-        for (int i = 0; i < length; i++) {
-          values[i] = (i < ui_data->default_array_len) ? (float)default_array[i] :
-                                                         (float)ui_data->default_value;
-        }
-      }
-      else {
-        rna_property_float_fill_default_array_values(
-            NULL, 0, (float)ui_data->default_value, length, values);
-      }
+      rna_property_float_fill_default_array_values_double(ui_data->default_array,
+                                                          ui_data->default_array_len,
+                                                          ui_data->default_value,
+                                                          length,
+                                                          values);
     }
   }
   else if (prop->arraydimension == 0) {



More information about the Bf-blender-cvs mailing list