Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien Montagne <bastien@blender.org>2020-10-26 11:50:18 +0300
committerBastien Montagne <bastien@blender.org>2020-10-26 11:51:49 +0300
commit4b7abde11df9bd6ed759a28286ce3a05147e08c8 (patch)
treeb777f3c536b556a50dbd001fdb6a65413ad8ad85
parent81462f86bc5fd8d8a51bdfb39f111570f7c3124e (diff)
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.
-rw-r--r--source/blender/blenkernel/intern/lib_override.c5
1 files changed, 5 insertions, 0 deletions
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;