summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSwarnim Arun <swarnimarun11@gmail.com>2020-05-25 19:49:57 +0530
committerGitHub <noreply@github.com>2020-05-25 19:49:57 +0530
commit5c48631509751191afc5a83e4c48075a90a38150 (patch)
tree6dbb5a1ab1fbcb478ad31054cd512423ff865dbc
parentbfac9b35385eddd3e3034674ae3fbd309ee64843 (diff)
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
-rw-r--r--modules/visual_script/visual_script_editor.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/modules/visual_script/visual_script_editor.cpp b/modules/visual_script/visual_script_editor.cpp
index fea7d151df..b7ca3c882b 100644
--- a/modules/visual_script/visual_script_editor.cpp
+++ b/modules/visual_script/visual_script_editor.cpp
@@ -3216,6 +3216,7 @@ void VisualScriptEditor::_move_nodes_with_rescan(const StringName &p_func_from,
{
List<VisualScript::DataConnection> 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;
@@ -3225,6 +3226,11 @@ void VisualScriptEditor::_move_nodes_with_rescan(const StringName &p_func_from,
int out_p = E->get().from_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)) {
connections.set(to, Map<int, Pair<int, int>>());
}