我即将在我的项目中包含 Lua。只有一个问题,如果我链接我自己的类并在 Lua 中创建它,堆栈没有清理,我得到内存泄漏。内存不断上升。
我的课:
class CTest
{
public:
CTest(std::string s)
: m_s(s)
{
std::cout << s << std::endl;
}
~CTest()
{
}
private:
std::string m_s;
};
C++ 测试代码:
auto state = luaL_newstate();
luaL_openlibs(state);
luabridge::getGlobalNamespace(state)
.beginClass<CTest>("Test")
.addConstructor<void(*)(std::string)>()
.endClass();
int iState = luaL_dofile(state, "Test.lua");
while (true)
{
int nStatus = 0;
lua_getglobal(state, "test");
nStatus = lua_pcall(state, 0,0,0);
}
Lua 代码
local ii = 0
function test()
local i = Test("Hallo " .. ii)
ii = ii + 1
end
我正在使用 Lua 5.2.0。