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.
This commit is contained in:
parent
8010cbe620
commit
c7a7a38b65
Notes:
blender-bot
2023-02-14 03:31:57 +01:00
Referenced by issue #79633, "Copy to selected" on cycles properties (e.g. "shadow terminator offset") asserts / is broken
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue