В моем коде я использую небольшой класс хранения данных, который создается в разных местах. Чтобы избежать утечек памяти и упростить вещи, я хочу использовать подсчет ссылок, поэтому я сделал
type TFileInfo = class (TInterfacedObject, IInterface)
и удалил все мои ручные вызовы TFileInfo.Free. К сожалению, Delphi сообщила о многих утечках памяти. Ища SO, я нашел следующий вопрос, объясняющий, почему это не работает:
Почему не собираются потомки TInterfacedObject?
Там представлен обходной путь, но он требует от меня (по крайней мере, если я правильно понял) написания пользовательского интерфейса IFileInfo и предоставления ему большого количества методов получения и установки, которых я хочу избежать.
РЕДАКТИРОВАТЬ Я должен добавить, что я вставляю объекты создания FileInfo в два вида хеш-таблиц: одна происходит от TBucketList, а другая - реализация хэш-карты с форума Codegear. Внутренне они оба являются указателями пользователей, поэтому ситуация такая же, как и в другом вопросе.
Есть ли какая-либо другая возможность заставить объекты в Delphi использовать подсчет ссылок?