[Bf-blender-cvs] [852d702da0a] blender2.8: Fix possibly missing flushes back to copy-on-write operation

Sergey Sharybin noreply at git.blender.org
Tue Aug 29 16:48:06 CEST 2017


Commit: 852d702da0a3262378fd08abcb42bfa0edf3cdfd
Author: Sergey Sharybin
Date:   Tue Aug 29 16:28:06 2017 +0200
Branches: blender2.8
https://developer.blender.org/rB852d702da0a3262378fd08abcb42bfa0edf3cdfd

Fix possibly missing flushes back to copy-on-write operation

Could have happened if multiple tags per object happens.

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

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

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

diff --git a/source/blender/depsgraph/intern/eval/deg_eval_flush.cc b/source/blender/depsgraph/intern/eval/deg_eval_flush.cc
index 6777c21f2ed..4cd316678a8 100644
--- a/source/blender/depsgraph/intern/eval/deg_eval_flush.cc
+++ b/source/blender/depsgraph/intern/eval/deg_eval_flush.cc
@@ -137,7 +137,9 @@ void deg_graph_flush_updates(Main *bmain, Depsgraph *graph)
 				lib_id_recalc_tag(bmain, id_orig);
 				/* TODO(sergey): For until we've got proper data nodes in the graph. */
 				lib_id_recalc_data_tag(bmain, id_orig);
+			}
 
+			if (comp_node->done == 0) {
 #ifdef WITH_COPY_ON_WRITE
 				/* Currently this is needed to get ob->mesh to be replaced with
 				 * original mesh (rather than being evaluated_mesh).
@@ -150,9 +152,6 @@ void deg_graph_flush_updates(Main *bmain, Depsgraph *graph)
 					cow_comp->tag_update(graph);
 				}
 #endif
-			}
-
-			if (comp_node->done == 0) {
 				Object *object = NULL;
 				if (GS(id_orig->name) == ID_OB) {
 					object = (Object *)id_orig;



More information about the Bf-blender-cvs mailing list