[Bf-blender-cvs] [706b690ec60] blender-v2.90-release: Fix (unreported) bad handling of pointers in overrides with shapekeys.

Bastien Montagne noreply at git.blender.org
Thu Jul 23 17:15:40 CEST 2020


Commit: 706b690ec60daac01195fd6bc30db5565303bb7e
Author: Bastien Montagne
Date:   Thu Jul 23 17:02:30 2020 +0200
Branches: blender-v2.90-release
https://developer.blender.org/rB706b690ec60daac01195fd6bc30db5565303bb7e

Fix (unreported) bad handling of pointers in overrides with shapekeys.

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

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 421a53b8e8d..707498d0d6f 100644
--- a/source/blender/blenkernel/intern/lib_override.c
+++ b/source/blender/blenkernel/intern/lib_override.c
@@ -1453,6 +1453,11 @@ void BKE_lib_override_library_update(Main *bmain, ID *local)
     /* This is some kind of hard-coded 'always enforced override'... */
     BKE_lib_id_swap(bmain, &local_key->id, &tmp_key->id);
     tmp_key->id.flag |= (local_key->id.flag & LIB_EMBEDDED_DATA_LIB_OVERRIDE);
+    /* The swap of local and tmp_id inverted those pointers, we need to redefine proper relationships. */
+    *BKE_key_from_id_p(local) = local_key;
+    *BKE_key_from_id_p(tmp_id) = tmp_key;
+    local_key->from = local;
+    tmp_key->from = tmp_id;
   }
 
   /* Again, horribly inn-efficient in our case, we need something off-Main



More information about the Bf-blender-cvs mailing list