diff options
author | Sergey Sharybin <sergey@blender.org> | 2021-06-21 15:27:26 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey@blender.org> | 2021-06-22 10:52:45 +0300 |
commit | 956c539e597aed84c355c8336dfd5797f4e69ea7 (patch) | |
tree | 52a6511183117fdff9407f49846fd508bd24223f /source/blender/depsgraph/intern/eval/deg_eval.cc | |
parent | d3a792431e6a71d23ea0916294b197003a8e2367 (diff) |
Fix T89196: Depsgraph use-after-free after scene switching undo
Delay depsgraph visibility update tagging until it is known that
graph relations are up to date, and until it is known that the graph
is actually needed to be evaluated.
Differential Revision: https://developer.blender.org/D11660
Diffstat (limited to 'source/blender/depsgraph/intern/eval/deg_eval.cc')
-rw-r--r-- | source/blender/depsgraph/intern/eval/deg_eval.cc | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/source/blender/depsgraph/intern/eval/deg_eval.cc b/source/blender/depsgraph/intern/eval/deg_eval.cc index 620e86550cc..6f35143e28f 100644 --- a/source/blender/depsgraph/intern/eval/deg_eval.cc +++ b/source/blender/depsgraph/intern/eval/deg_eval.cc @@ -45,6 +45,7 @@ #include "intern/depsgraph.h" #include "intern/depsgraph_relation.h" +#include "intern/depsgraph_tag.h" #include "intern/eval/deg_eval_copy_on_write.h" #include "intern/eval/deg_eval_flush.h" #include "intern/eval/deg_eval_stats.h" @@ -365,6 +366,8 @@ static TaskPool *deg_evaluate_task_pool_create(DepsgraphEvalState *state) */ void deg_evaluate_on_refresh(Depsgraph *graph) { + graph_tag_ids_for_visible_update(graph); + /* Nothing to update, early out. */ if (graph->entry_tags.is_empty()) { return; |