Fix #105571: crash when connecting invalid node group to multi input

Invalid nodes are not added to the lazy-function graph. Therefore, their
outgoing links are also not added, which implies that the targets need
some default value.
This commit is contained in:
Jacques Lucke
2023-03-09 11:19:59 +01:00
parent 495a6ec6cc
commit a4fd2d10c1

View File

@@ -1499,6 +1499,8 @@ struct GeometryNodesLazyFunctionGraphBuilder {
multi_input_socket_nodes_.add_new(&bsocket, &lf_multi_input_node);
for (lf::InputSocket *lf_multi_input_socket : lf_multi_input_node.inputs()) {
mapping_->bsockets_by_lf_socket_map.add(lf_multi_input_socket, &bsocket);
const void *default_value = lf_multi_input_socket->type().default_value();
lf_multi_input_socket->set_default_value(default_value);
}
}
else {
@@ -2740,7 +2742,8 @@ class UsedSocketVisualizeOptions : public lf::Graph::ToDotOptions {
socket_name_suffixes_.add(lf_socket, suffix);
}
}
else if (lf::OutputSocket *lf_socket = builder_.output_socket_map_.lookup(bsocket)) {
else if (lf::OutputSocket *lf_socket = builder_.output_socket_map_.lookup_default(bsocket,
nullptr)) {
socket_font_colors_.add(lf_socket, color_str);
socket_name_suffixes_.add(lf_socket, suffix);
}