diff --git a/src/LuaAPI.cpp b/src/LuaAPI.cpp index a324192..dfa7718 100644 --- a/src/LuaAPI.cpp +++ b/src/LuaAPI.cpp @@ -298,6 +298,7 @@ void LuaAPI::MP::PrintRaw(sol::variadic_args Args) { } int LuaAPI::PanicHandler(lua_State* State) { + //FIXME: unsafe operation, can cause stack overflow beammp_lua_error("PANIC: " + sol::stack::get(State, 1)); return 0; } diff --git a/src/TLuaEngine.cpp b/src/TLuaEngine.cpp index 31e6fa9..e584843 100644 --- a/src/TLuaEngine.cpp +++ b/src/TLuaEngine.cpp @@ -253,11 +253,15 @@ std::vector TLuaEngine::StateThreadData::GetStateTableKeys(const st } else if (i == keys.size() - 1) { if (obj.get_type() == sol::type::table) { for (const auto& [key, value] : obj.as()) { - std::string s = key.as(); - if (value.get_type() == sol::type::function) { - s += "("; + if (key.get_type() == sol::type::string) { + std::string s = key.as(); + + if (value.get_type() == sol::type::function) { + s += "("; + } + + Result.push_back(s); } - Result.push_back(s); } } else { Result = { obj.as() };