You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-05 12:10:55 +00:00
C#: Connect only once for each signal of a script
Since the list of signals in `CSharpScript::event_signals` retrieved from calling `ScriptManagerBridge.UpdateScriptClassInfo` already includes the signals from base scripts there is no need to iterate the hierarchy again on `CSharpInstance::connect_event_signals`.
This commit is contained in:
@@ -1754,9 +1754,8 @@ void CSharpInstance::mono_object_disposed_baseref(GCHandleIntPtr p_gchandle_to_f
|
||||
}
|
||||
|
||||
void CSharpInstance::connect_event_signals() {
|
||||
CSharpScript *top = script.ptr();
|
||||
while (top != nullptr) {
|
||||
for (CSharpScript::EventSignalInfo &signal : top->get_script_event_signals()) {
|
||||
// The script signals list includes the signals declared in base scripts.
|
||||
for (CSharpScript::EventSignalInfo &signal : script->get_script_event_signals()) {
|
||||
String signal_name = signal.name;
|
||||
|
||||
// TODO: Use pooling for ManagedCallable instances.
|
||||
@@ -1766,9 +1765,6 @@ void CSharpInstance::connect_event_signals() {
|
||||
connected_event_signals.push_back(callable);
|
||||
owner->connect(signal_name, callable);
|
||||
}
|
||||
|
||||
top = top->base_script.ptr();
|
||||
}
|
||||
}
|
||||
|
||||
void CSharpInstance::disconnect_event_signals() {
|
||||
|
||||
Reference in New Issue
Block a user