[Bf-blender-cvs] [c7a7a38b653] blender-v2.90-release: Fix T79633: ovrride apply code broken with RNA-defined runtime IDProps in some cases.

Bastien Montagne noreply at git.blender.org
Mon Aug 17 16:45:07 CEST 2020


Commit: c7a7a38b653a3587302a000355159784decee4a6
Author: Bastien Montagne
Date:   Mon Aug 17 16:42:28 2020 +0200
Branches: blender-v2.90-release
https://developer.blender.org/rBc7a7a38b653a3587302a000355159784decee4a6

Fix T79633: ovrride apply code broken with RNA-defined runtime IDProps in some cases.

When copying between a set RNA runtime property and an unset one, code
would not behave properly.

We have to also consider NULL 'override apply' callback pointer as a
valid 'use default override apply function' case.

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

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

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

diff --git a/source/blender/makesrna/intern/rna_access_compare_override.c b/source/blender/makesrna/intern/rna_access_compare_override.c
index 0a739dcfc5a..ac4553349cc 100644
--- a/source/blender/makesrna/intern/rna_access_compare_override.c
+++ b/source/blender/makesrna/intern/rna_access_compare_override.c
@@ -484,13 +484,13 @@ static bool rna_property_override_operation_apply(Main *bmain,
   /* Special case for IDProps, we use default callback then. */
   if (prop_dst->magic != RNA_MAGIC) {
     override_apply = rna_property_override_apply_default;
-    if (prop_src->magic == RNA_MAGIC && prop_src->override_apply != override_apply) {
+    if (prop_src->magic == RNA_MAGIC && !ELEM(prop_src->override_apply, NULL, override_apply)) {
       override_apply = NULL;
     }
   }
   else if (prop_src->magic != RNA_MAGIC) {
     override_apply = rna_property_override_apply_default;
-    if (prop_dst->override_apply != override_apply) {
+    if (!ELEM(prop_dst->override_apply, NULL, override_apply)) {
       override_apply = NULL;
     }
   }



More information about the Bf-blender-cvs mailing list