diff options
author | Rémi Verschelde <remi@verschelde.fr> | 2022-07-29 18:10:39 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-07-29 18:10:39 +0200 |
commit | 7199314eb39408da4f9f7286452c980a3d3da1c9 (patch) | |
tree | bde2b775cfcc20c77c8424b4c038a7553b344226 /modules/visual_script/visual_script.cpp | |
parent | 5352cf8e2fafb0c974e3ba68ff8e3c2ce80d449e (diff) | |
parent | d4433ae6d3a525683ef37ea521d30b6b97a44024 (diff) | |
download | redot-engine-7199314eb39408da4f9f7286452c980a3d3da1c9.tar.gz |
Merge pull request #63595 from reduz/remove-signal-connect-binds
Remove Signal connect binds
Diffstat (limited to 'modules/visual_script/visual_script.cpp')
-rw-r--r-- | modules/visual_script/visual_script.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/modules/visual_script/visual_script.cpp b/modules/visual_script/visual_script.cpp index 1ef3723011..4215a979e0 100644 --- a/modules/visual_script/visual_script.cpp +++ b/modules/visual_script/visual_script.cpp @@ -279,7 +279,7 @@ void VisualScript::add_node(int p_id, const Ref<VisualScriptNode> &p_node, const nd.pos = p_pos; Ref<VisualScriptNode> vsn = p_node; - vsn->connect("ports_changed", callable_mp(this, &VisualScript::_node_ports_changed), varray(p_id)); + vsn->connect("ports_changed", callable_mp(this, &VisualScript::_node_ports_changed).bind(p_id)); vsn->script_used = Ref<VisualScript>(this); vsn->validate_input_default_values(); // Validate when fully loaded. @@ -2122,7 +2122,14 @@ void VisualScriptFunctionState::connect_to_signal(Object *p_obj, const String &p binds.push_back(p_binds[i]); } binds.push_back(Ref<VisualScriptFunctionState>(this)); //add myself on the back to avoid dying from unreferencing - p_obj->connect(p_signal, Callable(this, "_signal_callback"), binds, CONNECT_ONESHOT); + + Vector<const Variant *> bind_ptrs; + bind_ptrs.resize(p_binds.size()); + for (int i = 0; i < bind_ptrs.size(); i++) { + bind_ptrs.write[i] = &binds.write[i]; + } + + p_obj->connect(p_signal, Callable(this, "_signal_callback").bindp((const Variant **)bind_ptrs.ptr(), bind_ptrs.size()), CONNECT_ONESHOT); } bool VisualScriptFunctionState::is_valid() const { |