[Bf-blender-cvs] [9637a178569] blender2.8: Depsgraph: immediately free object's derived caches in the COW step.

Alexander Gavrilov noreply at git.blender.org
Mon Dec 3 18:51:55 CET 2018


Commit: 9637a1785694eb83bdfe2b0fe6c55c962137881b
Author: Alexander Gavrilov
Date:   Mon Dec 3 20:48:36 2018 +0300
Branches: blender2.8
https://developer.blender.org/rB9637a1785694eb83bdfe2b0fe6c55c962137881b

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.

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

M	source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc

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

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;



More information about the Bf-blender-cvs mailing list