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.
This commit is contained in:
Bastien Montagne
2020-10-26 09:50:18 +01:00
parent 81462f86bc
commit 4b7abde11d

View File

@@ -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;