diff --git a/source/blender/depsgraph/intern/node/deg_node_id.cc b/source/blender/depsgraph/intern/node/deg_node_id.cc index 61f627e4f77..791134e76d1 100644 --- a/source/blender/depsgraph/intern/node/deg_node_id.cc +++ b/source/blender/depsgraph/intern/node/deg_node_id.cc @@ -116,10 +116,6 @@ void IDNode::destroy() return; } - for (ComponentNode *comp_node : components.values()) { - delete comp_node; - } - /* Free memory used by this evaluated ID. */ if (!ELEM(id_cow, id_orig, nullptr)) { deg_free_eval_copy_datablock(id_cow); @@ -129,6 +125,10 @@ void IDNode::destroy() "Destroy evaluated ID for %s: id_orig=%p id_cow=%p\n", id_orig->name, id_orig, id_cow); } + for (ComponentNode *comp_node : components.values()) { + delete comp_node; + } + /* Tag that the node is freed. */ id_orig = nullptr; }