以下是示例:
举个例子:
int r = luaL_ref(L, LUA_REGISTRYINDEX);
r
将是堆栈顶部对象的强引用。
是否可能获得对堆栈顶部对象的弱引用?
我考虑的方法之一是创建一个带有弱值的表,并将其存储在全局注册表中。然后在需要弱值时使用它。
是否有更简单的方法?
Lua 2.4在文档中有这个,但luaL_ref
现在似乎工作方式不同:
函数lua_ref创建对位于堆栈顶部的对象的引用,并返回此引用。如果lock为true,则锁定该对象:这意味着对象将不会被垃圾回收
luaL_ref
。我正在寻找一个 C API 的解决方案来实现它。 - Grapes