From 9637a1785694eb83bdfe2b0fe6c55c962137881b Mon Sep 17 00:00:00 2001 From: Alexander Gavrilov Date: Mon, 3 Dec 2018 20:48:36 +0300 Subject: Depsgraph: immediately free object's derived caches in the COW step. After update of the mesh some of that data is so broken that using it would crash. To reduce the risk of crashes in case of dependency cycles, clean it up immediately. --- source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc b/source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc index 21ca1636880..98e1bf49c5d 100644 --- a/source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc +++ b/source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc @@ -854,6 +854,9 @@ static void deg_restore_object_runtime( * that datablock. */ object->data = mesh_orig; + + /* After that, immediately free the invalidated caches. */ + BKE_object_free_derived_caches(object); } else { Mesh *mesh_eval = object->runtime.mesh_eval; -- cgit v1.2.3