Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Sharybin <sergey@blender.org>2021-01-28 12:20:43 +0300
committerSergey Sharybin <sergey@blender.org>2021-01-28 12:34:18 +0300
commit61d1fd7e2f8b972b903fa6684114a13f652fd507 (patch)
tree4c9f2edc75e1f3c60b9a2750bb1b38c4d6ecbac1 /source/blender/depsgraph/intern/depsgraph_tag.cc
parent78f7377c88b2b6f59fc3a0212d2b92f461cf5361 (diff)
Fix T85142: BMW scene quits Blender
Technically, the crash was caused by revert which happened in rBcd24712c2c5: it reverted some code which is essential for rB76fd41e9db1. Bring back the essential code for the removal of un-needed Copy-on-Write operations, so that the crash doesn't happen. What was causing the crash is the ID tag assuming Copy-on-Write operation always exists.
Diffstat (limited to 'source/blender/depsgraph/intern/depsgraph_tag.cc')
-rw-r--r--source/blender/depsgraph/intern/depsgraph_tag.cc4
1 files changed, 4 insertions, 0 deletions
diff --git a/source/blender/depsgraph/intern/depsgraph_tag.cc b/source/blender/depsgraph/intern/depsgraph_tag.cc
index 95ee8234ef3..c60ec4351bc 100644
--- a/source/blender/depsgraph/intern/depsgraph_tag.cc
+++ b/source/blender/depsgraph/intern/depsgraph_tag.cc
@@ -265,6 +265,10 @@ void depsgraph_update_editors_tag(Main *bmain, Depsgraph *graph, ID *id)
void depsgraph_id_tag_copy_on_write(Depsgraph *graph, IDNode *id_node, eUpdateSource update_source)
{
ComponentNode *cow_comp = id_node->find_component(NodeType::COPY_ON_WRITE);
+ if (cow_comp == nullptr) {
+ BLI_assert(!deg_copy_on_write_is_needed(GS(id_node->id_orig->name)));
+ return;
+ }
cow_comp->tag_update(graph, update_source);
}