fix error handling in events and runnables

This commit is contained in:
MihailRis 2024-12-31 10:25:26 +03:00
parent 3304bf27a6
commit 03a3062940
2 changed files with 10 additions and 5 deletions

View File

@ -172,7 +172,10 @@ local __post_runnables = {}
function __process_post_runnables()
if #__post_runnables then
for _, func in ipairs(__post_runnables) do
func()
local status, result = pcall(func)
if not status then
debug.log("error in post_runnable: "..result)
end
end
__post_runnables = {}
end

View File

@ -136,10 +136,12 @@ bool lua::emit_event(
getglobal(L, "events");
getfield(L, "emit");
pushstring(L, name);
call_nothrow(L, args(L) + 1);
bool result = toboolean(L, -1);
pop(L, 2);
return result;
if (call_nothrow(L, args(L) + 1)) {
bool result = toboolean(L, -1);
pop(L, 2);
return result;
}
return false;
}
State* lua::get_main_state() {