[Bf-blender-cvs] [09ba00974f8] master: Fix recent liboverride diff report refactor.

Bastien Montagne noreply at git.blender.org
Sun Dec 25 12:03:55 CET 2022


Commit: 09ba00974f8f8a83c801324062795f3dfb78c1b8
Author: Bastien Montagne
Date:   Sun Dec 25 20:01:59 2022 +0900
Branches: master
https://developer.blender.org/rB09ba00974f8f8a83c801324062795f3dfb78c1b8

Fix recent liboverride diff report refactor.

In rBfcddb7cda766 I forgot to update part of the whole diffing chain,
effectively breaking the report flags propagation from any sub-structs
of RNA IDs structs.

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

M	source/blender/makesrna/intern/rna_access_compare_override.c
M	source/blender/makesrna/intern/rna_internal.h
M	source/blender/makesrna/intern/rna_internal_types.h
M	source/blender/makesrna/intern/rna_rna.c

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

diff --git a/source/blender/makesrna/intern/rna_access_compare_override.c b/source/blender/makesrna/intern/rna_access_compare_override.c
index 0b8412367bf..ca133320cb6 100644
--- a/source/blender/makesrna/intern/rna_access_compare_override.c
+++ b/source/blender/makesrna/intern/rna_access_compare_override.c
@@ -413,25 +413,14 @@ static int rna_property_override_diff(Main *bmain,
     return 1;
   }
 
-  bool override_changed = false;
   eRNAOverrideMatch diff_flags = flags;
   if (!RNA_property_overridable_get(&prop_a->ptr, prop_a->rawprop) ||
       (!ELEM(RNA_property_type(prop_a->rawprop), PROP_POINTER, PROP_COLLECTION) &&
        !RNA_property_editable_flag(&prop_a->ptr, prop_a->rawprop))) {
     diff_flags &= ~RNA_OVERRIDE_COMPARE_CREATE;
   }
-  const int diff = override_diff(bmain,
-                                 prop_a,
-                                 prop_b,
-                                 mode,
-                                 override,
-                                 rna_path,
-                                 rna_path_len,
-                                 diff_flags,
-                                 &override_changed);
-  if (override_changed && r_report_flags) {
-    *r_report_flags |= RNA_OVERRIDE_MATCH_RESULT_CREATED;
-  }
+  const int diff = override_diff(
+      bmain, prop_a, prop_b, mode, override, rna_path, rna_path_len, diff_flags, r_report_flags);
 
   return diff;
 }
diff --git a/source/blender/makesrna/intern/rna_internal.h b/source/blender/makesrna/intern/rna_internal.h
index ea829e5cd86..57aea23024f 100644
--- a/source/blender/makesrna/intern/rna_internal.h
+++ b/source/blender/makesrna/intern/rna_internal.h
@@ -552,7 +552,7 @@ int rna_property_override_diff_default(struct Main *bmain,
                                        const char *rna_path,
                                        size_t rna_path_len,
                                        int flags,
-                                       bool *r_override_changed);
+                                       eRNAOverrideMatchResult *r_report_flag);
 
 bool rna_property_override_store_default(struct Main *bmain,
                                          struct PointerRNA *ptr_local,
diff --git a/source/blender/makesrna/intern/rna_internal_types.h b/source/blender/makesrna/intern/rna_internal_types.h
index a5b06cabade..3e621910ec7 100644
--- a/source/blender/makesrna/intern/rna_internal_types.h
+++ b/source/blender/makesrna/intern/rna_internal_types.h
@@ -8,6 +8,7 @@
 
 #include "DNA_listBase.h"
 
+#include "RNA_access.h"
 #include "RNA_types.h"
 
 struct BlenderRNA;
@@ -205,7 +206,7 @@ typedef int (*RNAPropOverrideDiff)(struct Main *bmain,
                                    const char *rna_path,
                                    size_t rna_path_len,
                                    int flags,
-                                   bool *r_override_changed);
+                                   eRNAOverrideMatchResult *r_report_flag);
 
 /**
  * Only used for differential override (add, sub, etc.).
diff --git a/source/blender/makesrna/intern/rna_rna.c b/source/blender/makesrna/intern/rna_rna.c
index 54ccba24247..f3249e5c1ee 100644
--- a/source/blender/makesrna/intern/rna_rna.c
+++ b/source/blender/makesrna/intern/rna_rna.c
@@ -1340,7 +1340,7 @@ static int rna_property_override_diff_propptr(Main *bmain,
                                               const int rna_itemindex_a,
                                               const int rna_itemindex_b,
                                               const int flags,
-                                              bool *r_override_changed)
+                                              eRNAOverrideMatchResult *r_report_flag)
 {
   BLI_assert(ELEM(property_type, PROP_POINTER, PROP_COLLECTION));
 
@@ -1418,8 +1418,8 @@ static int rna_property_override_diff_propptr(Main *bmain,
              * as used all of its operations. */
             op->tag &= ~IDOVERRIDE_LIBRARY_TAG_UNUSED;
             opop->tag &= ~IDOVERRIDE_LIBRARY_TAG_UNUSED;
-            if (r_override_changed) {
-              *r_override_changed = created;
+            if (r_report_flag && created) {
+              *r_report_flag |= RNA_OVERRIDE_MATCH_RESULT_CREATED;
             }
           }
           else {
@@ -1547,7 +1547,6 @@ static int rna_property_override_diff_propptr(Main *bmain,
         }
       }
 
-      eRNAOverrideMatchResult report_flags = 0;
       const bool match = RNA_struct_override_matches(bmain,
                                                      propptr_a,
                                                      propptr_b,
@@ -1555,10 +1554,7 @@ static int rna_property_override_diff_propptr(Main *bmain,
                                                      extended_rna_path_len,
                                                      override,
                                                      flags,
-                                                     &report_flags);
-      if (r_override_changed && (report_flags & RNA_OVERRIDE_MATCH_RESULT_CREATED) != 0) {
-        *r_override_changed = true;
-      }
+                                                     r_report_flag);
 
       if (!ELEM(extended_rna_path, extended_rna_path_buffer, rna_path)) {
         MEM_freeN(extended_rna_path);
@@ -1596,7 +1592,7 @@ int rna_property_override_diff_default(Main *bmain,
                                        const char *rna_path,
                                        const size_t rna_path_len,
                                        const int flags,
-                                       bool *r_override_changed)
+                                       eRNAOverrideMatchResult *r_report_flag)
 {
   PointerRNA *ptr_a = &prop_a->ptr;
   PointerRNA *ptr_b = &prop_b->ptr;
@@ -1648,8 +1644,8 @@ int rna_property_override_diff_default(Main *bmain,
           if (op != NULL && created) {
             BKE_lib_override_library_property_operation_get(
                 op, IDOVERRIDE_LIBRARY_OP_REPLACE, NULL, NULL, -1, -1, true, NULL, NULL);
-            if (r_override_changed) {
-              *r_override_changed = created;
+            if (*r_report_flag) {
+              *r_report_flag |= RNA_OVERRIDE_MATCH_RESULT_CREATED;
             }
           }
           else {
@@ -1677,8 +1673,8 @@ int rna_property_override_diff_default(Main *bmain,
           if (op != NULL && created) { /* If not yet overridden... */
             BKE_lib_override_library_property_operation_get(
                 op, IDOVERRIDE_LIBRARY_OP_REPLACE, NULL, NULL, -1, -1, true, NULL, NULL);
-            if (r_override_changed) {
-              *r_override_changed = created;
+            if (r_report_flag) {
+              *r_report_flag |= RNA_OVERRIDE_MATCH_RESULT_CREATED;
             }
           }
         }
@@ -1709,8 +1705,8 @@ int rna_property_override_diff_default(Main *bmain,
           if (op != NULL && created) {
             BKE_lib_override_library_property_operation_get(
                 op, IDOVERRIDE_LIBRARY_OP_REPLACE, NULL, NULL, -1, -1, true, NULL, NULL);
-            if (r_override_changed) {
-              *r_override_changed = created;
+            if (r_report_flag && created) {
+              *r_report_flag |= RNA_OVERRIDE_MATCH_RESULT_CREATED;
             }
           }
           else {
@@ -1738,8 +1734,8 @@ int rna_property_override_diff_default(Main *bmain,
           if (op != NULL && created) { /* If not yet overridden... */
             BKE_lib_override_library_property_operation_get(
                 op, IDOVERRIDE_LIBRARY_OP_REPLACE, NULL, NULL, -1, -1, true, NULL, NULL);
-            if (r_override_changed) {
-              *r_override_changed = created;
+            if (r_report_flag) {
+              *r_report_flag |= RNA_OVERRIDE_MATCH_RESULT_CREATED;
             }
           }
         }
@@ -1770,8 +1766,8 @@ int rna_property_override_diff_default(Main *bmain,
           if (op != NULL && created) {
             BKE_lib_override_library_property_operation_get(
                 op, IDOVERRIDE_LIBRARY_OP_REPLACE, NULL, NULL, -1, -1, true, NULL, NULL);
-            if (r_override_changed) {
-              *r_override_changed = created;
+            if (r_report_flag) {
+              *r_report_flag |= RNA_OVERRIDE_MATCH_RESULT_CREATED;
             }
           }
           else {
@@ -1799,8 +1795,8 @@ int rna_property_override_diff_default(Main *bmain,
           if (op != NULL && created) { /* If not yet overridden... */
             BKE_lib_override_library_property_operation_get(
                 op, IDOVERRIDE_LIBRARY_OP_REPLACE, NULL, NULL, -1, -1, true, NULL, NULL);
-            if (r_override_changed) {
-              *r_override_changed = created;
+            if (r_report_flag) {
+              *r_report_flag |= RNA_OVERRIDE_MATCH_RESULT_CREATED;
             }
           }
         }
@@ -1820,8 +1816,8 @@ int rna_property_override_diff_default(Main *bmain,
         if (op != NULL && created) { /* If not yet overridden... */
           BKE_lib_override_library_property_operation_get(
               op, IDOVERRIDE_LIBRARY_OP_REPLACE, NULL, NULL, -1, -1, true, NULL, NULL);
-          if (r_override_changed) {
-            *r_override_changed = created;
+          if (r_report_flag) {
+            *r_report_flag |= RNA_OVERRIDE_MATCH_RESULT_CREATED;
           }
         }
       }
@@ -1852,8 +1848,8 @@ int rna_property_override_diff_default(Main *bmain,
         if (op != NULL && created) { /* If not yet overridden... */
           BKE_lib_override_library_property_operation_get(
               op, IDOVERRIDE_LIBRARY_OP_REPLACE, NULL, NULL, -1, -1, true, NULL, NULL);
-          if (r_override_changed) {
-            *r_override_changed = created;
+          if (r_report_flag) {
+            *r_report_flag |= RNA_OVERRIDE_MATCH_RESULT_CREATED;
           }
         }
       }
@@ -1898,7 +1894,7 @@ int rna_property_override_diff_default(Main *bmain,
                                                   -1,
                                                   -1,
                                                   flags,
-                                                  r_override_changed);
+                                           

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list