[Bf-blender-cvs] [4b7abde11df] blender-v2.91-release: Fix T81963: Random rare crashes in override code.

Bastien Montagne noreply at git.blender.org
Mon Oct 26 09:52:07 CET 2020


Commit: 4b7abde11df9bd6ed759a28286ce3a05147e08c8
Author: Bastien Montagne
Date:   Mon Oct 26 09:50:18 2020 +0100
Branches: blender-v2.91-release
https://developer.blender.org/rB4b7abde11df9bd6ed759a28286ce3a05147e08c8

Fix T81963: Random rare crashes in override code.

Finaly managed to reproduce, we not only have to ensure pose data is up
to date for the override armature, but also for the reference linked
data.

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

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 e008058ae39..3adda80b445 100644
--- a/source/blender/blenkernel/intern/lib_override.c
+++ b/source/blender/blenkernel/intern/lib_override.c
@@ -1357,10 +1357,15 @@ bool BKE_lib_override_library_operations_create(Main *bmain, ID *local)
        * ensure this is valid, but in some situations (like hidden collections etc.) this won't
        * be the case, so we need to take care of this ourselves. */
       Object *ob_local = (Object *)local;
+      Object *ob_reference = (Object *)local->override_library->reference;
       if (ob_local->data != NULL && ob_local->type == OB_ARMATURE && ob_local->pose != NULL &&
           ob_local->pose->flag & POSE_RECALC) {
         BKE_pose_rebuild(bmain, ob_local, ob_local->data, true);
       }
+      if (ob_reference->data != NULL && ob_reference->type == OB_ARMATURE &&
+          ob_reference->pose != NULL && ob_reference->pose->flag & POSE_RECALC) {
+        BKE_pose_rebuild(bmain, ob_reference, ob_reference->data, true);
+      }
     }
 
     PointerRNA rnaptr_local, rnaptr_reference;



More information about the Bf-blender-cvs mailing list