На следующем примере:
int r = luaL_ref(L, LUA_REGISTRYINDEX);
r
будет строгой ссылкой на объект на вершине стека.
Можно ли получить слабую ссылку на верхний объект в стеке?
Один из подходов, о котором я думал, — создать таблицу со слабыми значениями и сохранить ее в глобальном реестре. Затем используйте это, когда требуется слабое значение.
Есть ли более простой подход?
Lua 2.4 имел это в документации, но luaL_ref
теперь работает по-другому.:
Функция lua_ref создает ссылку на объект, который находится на вершине стека, и возвращает эту ссылку. Если lock имеет значение true, объект заблокирован: это означает, что объект не будет удален сборщиком мусора.
luaL_ref
. Я искал решение C API о том, как его реализовать. - person Grapes   schedule 13.10.2013