有没有办法将在堆上分配的对象返回到 lua 而不“缓存”对它们的引用?
考虑以下:
class foo
{
char const* bar() const
{
char* s = malloc(...);
...
return s; // << Leak. How to transfer the ownership of 's' to lua?
}
};
如果我将字符串返回到分配的内存,我必须删除它。有没有办法将所有权转移给lua?
或者甚至有可能让lua_state*
我自己使用实现字符串返回lua_pushstring(...)
?