[Bf-blender-cvs] [4a445c8dc0e] master: LibOverride: Fix some issues from.revealed by recent previous commit.

Bastien Montagne noreply at git.blender.org
Tue Jul 12 15:37:19 CEST 2022


Commit: 4a445c8dc0edfe793e547ac49194df72c372f95a
Author: Bastien Montagne
Date:   Tue Jul 12 15:34:40 2022 +0200
Branches: master
https://developer.blender.org/rB4a445c8dc0edfe793e547ac49194df72c372f95a

LibOverride: Fix some issues from.revealed by recent previous commit.

rB57097e9a8515 did not properly consider case where you have more than
one override for a same reference linked ID.

Also adds more security checks around shapekeys, since match between
override and its linked reference is never ensured either way (fixes a
crash reported by @Rik from Blender studio).

===================================================================

M	source/blender/blenkernel/intern/lib_override.cc

===================================================================

diff --git a/source/blender/blenkernel/intern/lib_override.cc b/source/blender/blenkernel/intern/lib_override.cc
index 1969ec9196c..aa3210b64ad 100644
--- a/source/blender/blenkernel/intern/lib_override.cc
+++ b/source/blender/blenkernel/intern/lib_override.cc
@@ -455,8 +455,10 @@ static void lib_override_remapper_overrides_add(IDRemapper *id_remapper,
 
   Key *reference_key, *local_key = nullptr;
   if ((reference_key = BKE_key_from_id(reference_id)) != nullptr) {
-    local_key = BKE_key_from_id(reference_id->newid);
-    BLI_assert(local_key != nullptr);
+    if (reference_id->newid != nullptr) {
+      local_key = BKE_key_from_id(reference_id->newid);
+      BLI_assert(local_key != nullptr);
+    }
 
     BKE_id_remapper_add(id_remapper, &reference_key->id, &local_key->id);
   }
@@ -599,8 +601,9 @@ bool BKE_lib_override_library_create_from_tag(Main *bmain,
             other_id->override_library->hierarchy_root == id_hierarchy_root) {
           reference_id = other_id->override_library->reference;
           ID *local_id = reference_id->newid;
-          BLI_assert(other_id == local_id);
-          lib_override_remapper_overrides_add(id_remapper, reference_id, local_id);
+          if (other_id == local_id) {
+            lib_override_remapper_overrides_add(id_remapper, reference_id, local_id);
+          }
         }
       }
       if (other_id != id) {



More information about the Bf-blender-cvs mailing list