From 852d702da0a3262378fd08abcb42bfa0edf3cdfd Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Tue, 29 Aug 2017 16:28:06 +0200 Subject: [PATCH] Fix possibly missing flushes back to copy-on-write operation Could have happened if multiple tags per object happens. --- source/blender/depsgraph/intern/eval/deg_eval_flush.cc | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) 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;