Сделал ассоциированный массив на дженериках, используя TMap из пакета fcl-stl:
- Код: Выделить всё
TMapElement = class
Key: string;
KeyType: string;
Value: string;
constructor Create(_key, _keytype, _value: string);
end;
less = specialize TLess<string>;
TTagsMap = specialize TMap<string, TMapElement, less>;
В другом классе TJHTMLParse есть поле
- Код: Выделить всё
fValues: TTagsMap;
В деструкторе главного объекта вызываю метод освобождения памяти ассоциированного массива:
- Код: Выделить всё
destructor TJHTMLParse.Destroy;
begin
fValues.Destroy;
if Assigned(HTMLFile) then
HTMLFile.Free;
inherited;
end;
Модуль работает как надо, но при закрытии heaptrace показывает, что объекты не освободили память. Как правильно поступать с объектами-значениями массива, и могут ли они вообще быть элементами массива TMap?