fixed bug when hook.Call calls a hook more than 1 time

This commit is contained in:
Mestima 2023-10-10 23:50:49 +03:00
parent bab2506cc7
commit 805257da76

View File

@ -21,22 +21,20 @@ void Hook::Call(String event, Array args = Array(), bool defer = false) {
} }
} }
for (int i = 0; i < table.size(); i++) { Dictionary tmp = table.get(event, Dictionary());
Dictionary tmp = table.get(event, Dictionary()); if (!tmp.is_empty()) {
if (!tmp.is_empty()) { Array keys = tmp.keys();
Array keys = tmp.keys(); for (int key_i = 0; key_i < keys.size(); key_i++) {
for (int key_i = 0; key_i < keys.size(); key_i++) { Callable function = tmp[keys[key_i]];
Callable function = tmp[keys[key_i]]; if (!defer) {
if (!defer) { Callable::CallError call_error;
Callable::CallError call_error; function.callp(argptrs, args.size(), Variant(), call_error);
function.callp(argptrs, args.size(), Variant(), call_error); } else {
} else { function.call_deferredp(argptrs, args.size());
function.call_deferredp(argptrs, args.size());
}
} }
} else {
ERR_PRINT("Hook event '" + event + "' cannot be found or empty.");
} }
} else {
ERR_PRINT("Hook event '" + event + "' cannot be found or empty.");
} }
} }