From c7a7a38b653a3587302a000355159784decee4a6 Mon Sep 17 00:00:00 2001 From: Bastien Montagne Date: Mon, 17 Aug 2020 16:42:28 +0200 Subject: 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. --- source/blender/makesrna/intern/rna_access_compare_override.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'source/blender') 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; } } -- cgit v1.2.3