Нужно ли для полного освобождения метаданных __gc метаданных пользователя () это память? - PullRequest
3 голосов
/ 21 октября 2008

У меня есть полные пользовательские данные в модуле Lua, написанные на C. Пользовательские данные имеют __gc() метаметод, который вызывается сборщиком мусора. Освобождает ли интерпретатор lua память пользовательских данных после __gc() вызова, или мне нужно free() это внутри __gc()?

1 Ответ

8 голосов
/ 21 октября 2008

Вы не должны освобождать память, так как вы не использовали malloc () самостоятельно; Луа делает оба для вас. Фактически, память даже не собирается в том же цикле сбора мусора, как объясняется в разделе 2.10.1 справочного руководства Lua 5.1 .

...