Проблема С Памятью Delphi (FastMM4)

работа над проектом, использующим фабрики для создания объектов. Я сохраняю указатели на заводские функции в vars глобально (плохо, я знаю) и регистрирую их при инициализации.

недавно мне было интересно узнать, есть ли у проекта утечки памяти, поэтому я решил загрузить FastMM4 и посмотреть. Он придумал несколько ошибок, которые я мог бы исправить, но этот я немного озадачен, как кажется мне, не освобождая память о заводе, как показано в коде ниже я небольшая утечка памяти. Не смешно,но раздражает.

что бы я использовал, чтобы освободить память (если это так), я попытался dispose(@factoryfunction), но, похоже, все испортил. Я не слишком хорош с низкоуровневым указателем, который всегда смущает меня, поэтому, если кто-то может помочь, это было бы здорово.

Я включил пример ниже, который я только что списал с верхней части головы, который иллюстрирует проблему, которую я имеющий.

спасибо,

Барри

unit Test;

interface

uses classes;

type

TAFactoryFunction = reference to function (const aType : integer): TObject;

function testfunction (const aType : integer) : TObject;

implementation

function testfunction(const aType: integer) : TObject;
begin
    result := TObject.Create;
end;

var
   FactoryFunction : TAFactoryFunction

initialization
   FactoryFunction := testfunction;

finalization
   // possibly some freemem code here?

end.

1 ответов


Я только что протестировал это в Delphi 2010, и это похоже на ошибку. Компилятор должен генерировать код для очистки, но это не так. Даже писать!--0-->, Как предположил Дэвид, не работает.

вы должны сообщить об этом в QC как об ошибке.