From a3b59e0ac1fbd12a19daa8eabec9fdd9369691a1 Mon Sep 17 00:00:00 2001 From: philmoz Date: Fri, 20 Jun 2025 08:40:45 +1000 Subject: [PATCH] fix(lua): memory leak when re-loading Lua scripts (#6372) --- radio/src/lua/interface.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/radio/src/lua/interface.cpp b/radio/src/lua/interface.cpp index 27e87b683..8a352d51f 100644 --- a/radio/src/lua/interface.cpp +++ b/radio/src/lua/interface.cpp @@ -1377,6 +1377,13 @@ void luaInit() if (luaState != INTERPRETER_PANIC) { if (mainState) { + if (lsScripts) { + for (int i = 0; i < luaScriptsCount; i += 1) + luaFree(lsScripts, scriptInternalData[i]); + lua_settop(lsScripts, 0); + lua_gc(lsScripts, LUA_GCCOLLECT, 0); + lsScripts = nullptr; + } lua_settop(mainState, 0); lua_gc(mainState, LUA_GCCOLLECT, 0);