Использование C ++ , lua5.1 , luabind 0.7
Код Lua:
-- allocates near 8Mb of memory
function fff()
local t = {}
for i = 1, 300000 do
table.insert(t, i)
end
return t
end
C ++ код:
{
luaL_dostring(lua_state, "return fff()");
luabind::object obj(luabind::from_stack(ls, -1));
}
lua_gc(l_, LUA_GCCOLLECT, 0); // collect garbage
Результат : Lua все еще имеет выделенную память 8 МБ. Сборка мусора игнорирует этот табличный объект. У него есть ссылки где-нибудь? Но где? Эта таблица освобождается только при выходе из программы (когда вызывается функция "lua_close"). Как решить эту проблему?
Спасибо.