mirror of
				https://github.com/luanti-org/luanti.git
				synced 2025-11-04 01:05:48 +01:00 
			
		
		
		
	Fix debug.getinfo not being unset in CPCSM (#16506)
regression was introduced in eeb6cab
			
			
This commit is contained in:
		@@ -41,7 +41,7 @@ stds.menu_common = {
 | 
			
		||||
	},
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
files["builtin/client/register.lua"] = {
 | 
			
		||||
files["builtin/client/init.lua"] = {
 | 
			
		||||
	globals = {
 | 
			
		||||
		debug = {fields={"getinfo"}},
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
@@ -13,3 +13,6 @@ dofile(commonpath .. "information_formspecs.lua")
 | 
			
		||||
dofile(clientpath .. "chatcommands.lua")
 | 
			
		||||
dofile(clientpath .. "misc.lua")
 | 
			
		||||
assert(loadfile(commonpath .. "item_s.lua"))({}) -- Just for push/read node functions
 | 
			
		||||
 | 
			
		||||
-- unset, as promised in initializeSecurityClient()
 | 
			
		||||
debug.getinfo = nil
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,5 @@
 | 
			
		||||
local builtin_shared = ...
 | 
			
		||||
local debug_getinfo = debug.getinfo
 | 
			
		||||
 | 
			
		||||
do
 | 
			
		||||
	local default = {mod = "??", name = "??"}
 | 
			
		||||
@@ -56,7 +57,7 @@ function builtin_shared.make_registration()
 | 
			
		||||
		core.callback_origins[func] = {
 | 
			
		||||
			-- may be nil or return nil
 | 
			
		||||
			mod = core.get_current_modname and core.get_current_modname() or "??",
 | 
			
		||||
			name = debug.getinfo(1, "n").name or "??"
 | 
			
		||||
			name = debug_getinfo(1, "n").name or "??"
 | 
			
		||||
		}
 | 
			
		||||
	end
 | 
			
		||||
	return t, registerfunc
 | 
			
		||||
@@ -69,7 +70,7 @@ function builtin_shared.make_registration_reverse()
 | 
			
		||||
		core.callback_origins[func] = {
 | 
			
		||||
			-- may be nil or return nil
 | 
			
		||||
			mod = core.get_current_modname and core.get_current_modname() or "??",
 | 
			
		||||
			name = debug.getinfo(1, "n").name or "??"
 | 
			
		||||
			name = debug_getinfo(1, "n").name or "??"
 | 
			
		||||
		}
 | 
			
		||||
	end
 | 
			
		||||
	return t, registerfunc
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
local getinfo, rawget, rawset = debug.getinfo, rawget, rawset
 | 
			
		||||
local debug_getinfo, rawget, rawset = debug.getinfo, rawget, rawset
 | 
			
		||||
 | 
			
		||||
function core.global_exists(name)
 | 
			
		||||
	if type(name) ~= "string" then
 | 
			
		||||
@@ -18,7 +18,7 @@ function meta:__newindex(name, value)
 | 
			
		||||
	if declared[name] then
 | 
			
		||||
		return
 | 
			
		||||
	end
 | 
			
		||||
	local info = getinfo(2, "Sl")
 | 
			
		||||
	local info = debug_getinfo(2, "Sl")
 | 
			
		||||
	if info ~= nil then
 | 
			
		||||
		local desc = ("%s:%d"):format(info.short_src, info.currentline)
 | 
			
		||||
		local warn_key = ("%s\0%d\0%s"):format(info.source, info.currentline, name)
 | 
			
		||||
@@ -36,7 +36,7 @@ function meta:__index(name)
 | 
			
		||||
	if declared[name] then
 | 
			
		||||
		return
 | 
			
		||||
	end
 | 
			
		||||
	local info = getinfo(2, "Sl")
 | 
			
		||||
	local info = debug_getinfo(2, "Sl")
 | 
			
		||||
	if info == nil then
 | 
			
		||||
		return
 | 
			
		||||
	end
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,6 @@
 | 
			
		||||
local builtin_shared = ...
 | 
			
		||||
local S = core.get_translator("__builtin")
 | 
			
		||||
local debug_getinfo = debug.getinfo
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Make raw registration functions inaccessible to anyone except this file
 | 
			
		||||
@@ -548,7 +549,7 @@ function core.registered_on_player_hpchange(player, hp_change, reason)
 | 
			
		||||
		local func = core.registered_on_player_hpchanges.modifiers[i]
 | 
			
		||||
		hp_change, last = func(player, hp_change, reason)
 | 
			
		||||
		if type(hp_change) ~= "number" then
 | 
			
		||||
			local debuginfo = debug.getinfo(func)
 | 
			
		||||
			local debuginfo = debug_getinfo(func)
 | 
			
		||||
			error("The register_on_hp_changes function has to return a number at " ..
 | 
			
		||||
				debuginfo.short_src .. " line " .. debuginfo.linedefined)
 | 
			
		||||
		end
 | 
			
		||||
@@ -570,7 +571,7 @@ function core.register_on_player_hpchange(func, modifier)
 | 
			
		||||
	end
 | 
			
		||||
	core.callback_origins[func] = {
 | 
			
		||||
		mod = core.get_current_modname() or "??",
 | 
			
		||||
		name = debug.getinfo(1, "n").name or "??"
 | 
			
		||||
		name = debug_getinfo(1, "n").name or "??"
 | 
			
		||||
	}
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -5,6 +5,7 @@
 | 
			
		||||
local format, ipairs, type = string.format, ipairs, type
 | 
			
		||||
local core, get_current_modname = core, core.get_current_modname
 | 
			
		||||
local profiler, sampler = ...
 | 
			
		||||
local debug_getinfo = debug.getinfo
 | 
			
		||||
 | 
			
		||||
local instrument_builtin = core.settings:get_bool("instrument.builtin", false)
 | 
			
		||||
 | 
			
		||||
@@ -67,7 +68,7 @@ local worldmods_path = regex_escape(core.get_worldpath())
 | 
			
		||||
local user_path = regex_escape(core.get_user_path())
 | 
			
		||||
local builtin_path = regex_escape(core.get_builtin_path())
 | 
			
		||||
local function generate_source_location(def)
 | 
			
		||||
	local info = debug.getinfo(def.func)
 | 
			
		||||
	local info = debug_getinfo(def.func)
 | 
			
		||||
	local modpath = regex_escape(core.get_modpath(def.mod) or "")
 | 
			
		||||
	local source = info.source
 | 
			
		||||
	if modpath ~= "" then
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user