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

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

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

Что бы я использовал для освобождения памяти (если это так) Я пытался удалить (@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.
7
задан Barry 29 September 2011 в 16:07
поделиться