【发布时间】:2013-10-20 20:43:04
【问题描述】:
下面的例子:
int r = luaL_ref(L, LUA_REGISTRYINDEX);
r 将是对堆栈顶部对象的强引用。
是否可以获得对栈顶对象的弱引用?
我正在考虑的一种方法是创建一个具有弱值的表并将其存储在全局注册表中。然后在需要弱值时使用它。
有更简单的方法吗?
Lua 2.4 的文档中有这个,但 luaL_ref 现在的工作方式似乎有所不同。:
函数 lua_ref 创建一个对对象的引用,该对象位于 栈顶,并返回此引用。如果 lock 为真,则 对象被锁定:这意味着对象不会被垃圾回收
【问题讨论】:
-
@Kamiccolo 这个问题专门针对
luaL_ref。我一直在寻找有关如何实现它的 C API 解决方案。