[Bf-blender-cvs] [76be5b5bf5c] blender-v2.81-release: Fix T70789: Using Remove Single Override breaks file loading (crash).
Bastien Montagne
noreply at git.blender.org
Fri Nov 8 14:53:02 CET 2019
Commit: 76be5b5bf5c830f8a3a3640fcf439bdca3a9aa89
Author: Bastien Montagne
Date: Fri Nov 8 14:52:07 2019 +0100
Branches: blender-v2.81-release
https://developer.blender.org/rB76be5b5bf5c830f8a3a3640fcf439bdca3a9aa89
Fix T70789: Using Remove Single Override breaks file loading (crash).
We only need to refine rna pointer for actual collection properties,
other arrays we handle directly the the appy callback.
===================================================================
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 18fbe7886e9..7dae3cbf339 100644
--- a/source/blender/makesrna/intern/rna_access_compare_override.c
+++ b/source/blender/makesrna/intern/rna_access_compare_override.c
@@ -890,8 +890,11 @@ static void rna_property_override_apply_ex(Main *bmain,
* Note that here, src is the local saved ID, and dst is a copy of the linked ID (since we use
* local ID as storage to apply local changes on top of a clean copy of the linked data). */
PointerRNA private_ptr_item_dst, private_ptr_item_src, private_ptr_item_storage;
- if (opop->subitem_local_name != NULL || opop->subitem_reference_name != NULL ||
- opop->subitem_local_index != -1 || opop->subitem_reference_index != -1) {
+ if ((RNA_property_type(prop_dst) == PROP_COLLECTION &&
+ RNA_property_type(prop_src) == PROP_COLLECTION &&
+ (prop_storage == NULL || RNA_property_type(prop_storage) == PROP_COLLECTION)) &&
+ (opop->subitem_local_name != NULL || opop->subitem_reference_name != NULL ||
+ opop->subitem_local_index != -1 || opop->subitem_reference_index != -1)) {
RNA_POINTER_INVALIDATE(&private_ptr_item_dst);
RNA_POINTER_INVALIDATE(&private_ptr_item_src);
RNA_POINTER_INVALIDATE(&private_ptr_item_storage);
More information about the Bf-blender-cvs
mailing list