Lua: Могу ли я передавать пользовательские данные более одного раза?

#c #lua

Вопрос:

Если я нажимаю UserData больше, чем один раз, вещи сборщика мусора, это разные экземпляры.

 -- UserType - C   Function, which CREATES and returns an instance of UserType.
-- GetUT - C   Function, which returns an instance of UserType by name, created by UserType.

UserType = UserType("Type_1") -- Isn't collected.
GetUT("Type_1") -- Is collected, but it is the same C   instance.
collectgarbage("collect")
 

Сборщик мусора пытается собрать экземпляр с именем «Type_1», потому что я вызвал GetUT, и он вернул значение экземпляра, но на него все еще есть ссылка, называемая UserType. Что я могу сделать, чтобы вернуть один и тот же объект из C более одного раза?

Комментарии:

1. Не могли бы вы предоставить вместе с этим и код на C ? Неясно, как эти функции ведут себя и взаимодействуют со сборщиком мусора Lua.