fix(lua): signal functions were being deleted after being called

This commit is contained in:
maelstrom 2025-05-26 15:08:16 +02:00
parent 5fdc745259
commit 49f29b6af1

View file

@ -23,7 +23,6 @@ LuaSignalConnection::LuaSignalConnection(lua_State* L, std::weak_ptr<Signal> par
// Save function so it doesn't get GC'd // Save function so it doesn't get GC'd
function = luaL_ref(L, LUA_REGISTRYINDEX); function = luaL_ref(L, LUA_REGISTRYINDEX);
lua_pop(L, 1);
} }
LuaSignalConnection::~LuaSignalConnection() { LuaSignalConnection::~LuaSignalConnection() {
@ -36,7 +35,6 @@ void LuaSignalConnection::Call(std::vector<Data::Variant> args) {
// Push function // Push function
lua_rawgeti(thread, LUA_REGISTRYINDEX, function); lua_rawgeti(thread, LUA_REGISTRYINDEX, function);
luaL_unref(thread, LUA_REGISTRYINDEX, function);
for (Data::Variant arg : args) { for (Data::Variant arg : args) {
arg.PushLuaValue(thread); arg.PushLuaValue(thread);