[GBP no update] Mitigates lua-related harddels and fixes lua signal handlers for COMSIG_PARENT_QDELETING (#68677)

This commit is contained in:
Y0SH1M4S73R
2022-07-24 00:56:17 -07:00
committed by GitHub
parent b67b26d593
commit a6b4c3db8a
10 changed files with 178 additions and 74 deletions
+8 -2
View File
@@ -38,6 +38,8 @@ GLOBAL_PROTECT(lua_usr)
SSlua.sleeps += src
/datum/lua_state/proc/log_result(result, verbose = TRUE)
if(!islist(result))
return
if(!verbose && result["status"] != "errored" && result["status"] != "bad return" \
&& !(result["name"] == "input" && (result["status"] == "finished" || length(result["param"]))))
return
@@ -55,7 +57,7 @@ GLOBAL_PROTECT(lua_usr)
append_to_log = FALSE
break
if(append_to_log)
log += list(result)
log += list(weakrefify_list(result))
/datum/lua_state/proc/load_script(script)
GLOB.IsLuaCall = TRUE
@@ -91,6 +93,10 @@ GLOBAL_PROTECT(lua_usr)
if(istext(result))
result = list("status" = "errored", "param" = result, "name" = islist(function) ? jointext(function, ".") : function)
check_if_slept(result)
var/list/editor_list = LAZYACCESS(SSlua.editors, "\ref[src]")
if(editor_list)
for(var/datum/lua_editor/editor in editor_list)
SStgui.update_uis(editor)
return result
/datum/lua_state/proc/call_function_return_first(function, ...)
@@ -126,7 +132,7 @@ GLOBAL_PROTECT(lua_usr)
return result
/datum/lua_state/proc/get_globals()
globals = __lua_get_globals(internal_id)
globals = weakrefify_list(__lua_get_globals(internal_id))
/datum/lua_state/proc/get_tasks()
return __lua_get_tasks(internal_id)