diff options
author | Jacques Lucke <jacques@blender.org> | 2021-11-19 12:15:58 +0300 |
---|---|---|
committer | Jacques Lucke <jacques@blender.org> | 2021-11-19 12:15:58 +0300 |
commit | de3fda29c79f143d0bc251ded5bcbf4613417247 (patch) | |
tree | be78ac0aa582bb14b346dcb57e3061f3e154bbdf /source/blender/nodes/intern/derived_node_tree.cc | |
parent | 4ea6b4ba8475f4f6bb02799f7ef8cd261ecb4398 (diff) |
Fix T93054: crash when deleting a missed linked file
This is a bit similar to rBb7260ca4c9f4b7618c9c214f1270e31d6ed9886b.
Sometimes a group node may not reference a node group
because it was linked and can't be found.
Diffstat (limited to 'source/blender/nodes/intern/derived_node_tree.cc')
-rw-r--r-- | source/blender/nodes/intern/derived_node_tree.cc | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/source/blender/nodes/intern/derived_node_tree.cc b/source/blender/nodes/intern/derived_node_tree.cc index 14d6c77299b..8a9386c1137 100644 --- a/source/blender/nodes/intern/derived_node_tree.cc +++ b/source/blender/nodes/intern/derived_node_tree.cc @@ -167,7 +167,11 @@ DInputSocket DOutputSocket::get_active_corresponding_group_output_socket() const BLI_assert(socket_ref_->node().is_group_node()); const DTreeContext *child_context = context_->child_context(socket_ref_->node()); - BLI_assert(child_context != nullptr); + if (child_context == nullptr) { + /* Can happen when the group node references a non-existant group (e.g. when the group is + * linked but the original file is not found). */ + return {}; + } const NodeTreeRef &child_tree = child_context->tree(); Span<const NodeRef *> group_output_nodes = child_tree.nodes_by_type("NodeGroupOutput"); |