Fix crashing of VisualScript due to...

Attempting to move the function node to another function whose data connection is a dependency of the node the specific node being moved to a different function during changes to sequence connections.
By skipping, if the from_node is a function_node during the data connection dependencies scan.
Should fix #37991
This commit is contained in:
Swarnim Arun 2020-05-25 19:49:57 +05:30 committed by GitHub
parent bfac9b3538
commit 5c48631509
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 6 additions and 0 deletions

View File

@ -3216,6 +3216,7 @@ void VisualScriptEditor::_move_nodes_with_rescan(const StringName &p_func_from,
{ {
List<VisualScript::DataConnection> data_connections; List<VisualScript::DataConnection> data_connections;
script->get_data_connection_list(p_func_from, &data_connections); script->get_data_connection_list(p_func_from, &data_connections);
int func_from_node_id = script->get_function_node_id(p_func_from);
HashMap<int, Map<int, Pair<int, int>>> connections; HashMap<int, Map<int, Pair<int, int>>> connections;
@ -3225,6 +3226,11 @@ void VisualScriptEditor::_move_nodes_with_rescan(const StringName &p_func_from,
int out_p = E->get().from_port; int out_p = E->get().from_port;
int in_p = E->get().to_port; int in_p = E->get().to_port;
// skip if the from_node is a function node
if (from == func_from_node_id) {
continue;
}
if (!connections.has(to)) { if (!connections.has(to)) {
connections.set(to, Map<int, Pair<int, int>>()); connections.set(to, Map<int, Pair<int, int>>());
} }