[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