[Bf-blender-cvs] [bace031b654] master: Fix (unreported) assert in liboverride reset code.
Bastien Montagne
noreply at git.blender.org
Tue Feb 9 18:56:21 CET 2021
Commit: bace031b654fec17fd23541b4b667253870e3355
Author: Bastien Montagne
Date: Tue Feb 9 18:53:52 2021 +0100
Branches: master
https://developer.blender.org/rBbace031b654fec17fd23541b4b667253870e3355
Fix (unreported) assert in liboverride reset code.
Invalid override properties ( i.e. invalid RNA paths) are not strictly
speaking errors, many things can lead to that situation. Just ignore and
skip those cases.
===================================================================
M source/blender/blenkernel/intern/lib_override.c
===================================================================
diff --git a/source/blender/blenkernel/intern/lib_override.c b/source/blender/blenkernel/intern/lib_override.c
index 03ce1b8c9ca..68a75e469fd 100644
--- a/source/blender/blenkernel/intern/lib_override.c
+++ b/source/blender/blenkernel/intern/lib_override.c
@@ -1647,24 +1647,26 @@ static bool lib_override_library_id_reset_do(Main *bmain, ID *id_root)
&ptr_root_lib);
bool prop_exists = RNA_path_resolve_property(&ptr_root, op->rna_path, &ptr, &prop);
- BLI_assert(prop_exists);
- prop_exists = RNA_path_resolve_property(&ptr_root_lib, op->rna_path, &ptr_lib, &prop_lib);
-
if (prop_exists) {
- BLI_assert(ELEM(RNA_property_type(prop), PROP_POINTER, PROP_COLLECTION));
- BLI_assert(RNA_property_type(prop) == RNA_property_type(prop_lib));
- if (is_collection) {
- ptr.type = RNA_property_pointer_type(&ptr, prop);
- ptr_lib.type = RNA_property_pointer_type(&ptr_lib, prop_lib);
- }
- else {
- ptr = RNA_property_pointer_get(&ptr, prop);
- ptr_lib = RNA_property_pointer_get(&ptr_lib, prop_lib);
- }
- if (ptr.owner_id != NULL && ptr_lib.owner_id != NULL) {
- BLI_assert(ptr.type == ptr_lib.type);
- do_op_delete = !(RNA_struct_is_ID(ptr.type) && ptr.owner_id->override_library != NULL &&
- ptr.owner_id->override_library->reference == ptr_lib.owner_id);
+ prop_exists = RNA_path_resolve_property(&ptr_root_lib, op->rna_path, &ptr_lib, &prop_lib);
+
+ if (prop_exists) {
+ BLI_assert(ELEM(RNA_property_type(prop), PROP_POINTER, PROP_COLLECTION));
+ BLI_assert(RNA_property_type(prop) == RNA_property_type(prop_lib));
+ if (is_collection) {
+ ptr.type = RNA_property_pointer_type(&ptr, prop);
+ ptr_lib.type = RNA_property_pointer_type(&ptr_lib, prop_lib);
+ }
+ else {
+ ptr = RNA_property_pointer_get(&ptr, prop);
+ ptr_lib = RNA_property_pointer_get(&ptr_lib, prop_lib);
+ }
+ if (ptr.owner_id != NULL && ptr_lib.owner_id != NULL) {
+ BLI_assert(ptr.type == ptr_lib.type);
+ do_op_delete = !(RNA_struct_is_ID(ptr.type) &&
+ ptr.owner_id->override_library != NULL &&
+ ptr.owner_id->override_library->reference == ptr_lib.owner_id);
+ }
}
}
}
More information about the Bf-blender-cvs
mailing list