From d0a82437a4fd18c14544bbf7c787918795a11acc Mon Sep 17 00:00:00 2001 From: Petr Mikheev Date: Sun, 26 Feb 2023 16:50:17 +0100 Subject: [PATCH] [Lua] Fix memory tracking --- components/lua/luastate.cpp | 5 ++++- components/lua/luastate.hpp | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/components/lua/luastate.cpp b/components/lua/luastate.cpp index d8899a2634..9af617020e 100644 --- a/components/lua/luastate.cpp +++ b/components/lua/luastate.cpp @@ -126,11 +126,14 @@ namespace LuaUtil id = self->mActiveScriptIdStack.back(); bigAllocDelta = nsize; } - if (id.mContainer) + if (id.mIndex >= 0) { if (static_cast(id.mIndex) >= self->mMemoryUsage.size()) self->mMemoryUsage.resize(id.mIndex + 1); self->mMemoryUsage[id.mIndex] += bigAllocDelta; + } + if (id.mContainer) + { id.mContainer->addMemoryUsage(id.mIndex, bigAllocDelta); if (newPtr && nsize > smallAllocSize) self->mBigAllocOwners.emplace(newPtr, AllocOwner{ id.mContainer->mThis, id.mIndex }); diff --git a/components/lua/luastate.hpp b/components/lua/luastate.hpp index b0e173d67e..a41a29d283 100644 --- a/components/lua/luastate.hpp +++ b/components/lua/luastate.hpp @@ -23,7 +23,7 @@ namespace LuaUtil struct ScriptId { ScriptsContainer* mContainer = nullptr; - int mIndex; // index in LuaUtil::ScriptsConfiguration + int mIndex = -1; // index in LuaUtil::ScriptsConfiguration }; struct LuaStateSettings