Fix T94775: Buggy liboverride default apply code for items insertion in RNA collections.
For some reason, the rework of liboverride handling of Collection items insertion (rB33c5e7bcd5e5) completely missed to update accordingly the default liboverride apply code... Many thanks to Wayde Moss (@GuiltyGhost) for the investigation and proposed solution.
This commit is contained in:
parent
97dbcf9746
commit
5b8a3ccd37
Notes:
blender-bot
2023-02-14 18:27:02 +01:00
Referenced by issue blender/blender-addons#94775, Bone selection sets not saving
|
@ -2601,10 +2601,11 @@ bool rna_property_override_apply_default(Main *bmain,
|
|||
int item_index_src, item_index_ref;
|
||||
if (RNA_property_collection_lookup_string_index(
|
||||
ptr_src, prop_src, opop->subitem_local_name, &item_ptr_src, &item_index_src) &&
|
||||
RNA_property_collection_lookup_int(
|
||||
ptr_src, prop_src, item_index_src + 1, &item_ptr_src) &&
|
||||
RNA_property_collection_lookup_string_index(
|
||||
ptr_dst, prop_dst, opop->subitem_local_name, &item_ptr_ref, &item_index_ref)) {
|
||||
RNA_property_collection_lookup_string_index(ptr_dst,
|
||||
prop_dst,
|
||||
opop->subitem_reference_name,
|
||||
&item_ptr_ref,
|
||||
&item_index_ref)) {
|
||||
is_valid = true;
|
||||
item_index_dst = item_index_ref + 1;
|
||||
}
|
||||
|
@ -2612,10 +2613,10 @@ bool rna_property_override_apply_default(Main *bmain,
|
|||
if (!is_valid && opop->subitem_local_index >= 0) {
|
||||
/* Find from index. */
|
||||
if (RNA_property_collection_lookup_int(
|
||||
ptr_src, prop_src, opop->subitem_local_index + 1, &item_ptr_src) &&
|
||||
ptr_src, prop_src, opop->subitem_local_index, &item_ptr_src) &&
|
||||
RNA_property_collection_lookup_int(
|
||||
ptr_dst, prop_dst, opop->subitem_local_index, &item_ptr_ref)) {
|
||||
item_index_dst = opop->subitem_local_index + 1;
|
||||
ptr_dst, prop_dst, opop->subitem_reference_index, &item_ptr_ref)) {
|
||||
item_index_dst = opop->subitem_reference_index + 1;
|
||||
is_valid = true;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue