我有void *
一个 C++ 创建的对象,我使用lua_pushlightuserdata()
. Lua 可以通过将轻量用户数据传递给 Lua CFunctions 并使用lua_touserdata()
. 在将来的某个时刻,C++ 对象被其所有者 (C++) 破坏,释放内存并设置为 null。但是,Lua 仍然有这个指针的引用,它并不知道它已经被销毁了。
现在我的 Lua 函数接受这个用户数据确保指针是有效的。但是通知 Lua 他们对轻用户数据的引用不再有效的最佳方法是什么?我是否IsValid(lightuserdata)
向 Lua 公开了一个函数以便它可以查询状态?或者有没有更好的方法,我错过了。