Einzelnen Beitrag anzeigen

API

Registriert seit: 18. Apr 2004
637 Beiträge
 
#1

FastIniFiles Memory Leaks

  Alt 22. Nov 2009, 08:14
Hallo

Bin auf FastIniFiles (http://home.arcor.de/smartprog4u/) umgestiegen weil es ein paar nette Funktionen bietet und schneller läuft.
Das Problem: Beim Beenden des Programms gibt es Memory Leaks.

Testcode:

Delphi-Quellcode:
uses
 FastIniFiles;

procedure TForm1.FormCreate(Sender: TObject);
begin
  with TFIniFile.Create('C:\...\test.ini') do
  try
  (*........*)
  finally
    Free;
  end;
end;
Leaks:

Zitat:
----------------------------------------------------------------------------
|+Memory Leak: Type=Data; Total size=32; Count=2 |
|--------------------------------------------------------------------------|
|004AD2E6|Project1.exe|FastIniFiles.pas|TFIniFile| Create |346[92] |
|004AD2FC|Project1.exe|FastIniFiles.pas|TFIniFile| Create |347[93] |
|--------------------------------------------------------------------------|
| |
|+Memory Leak: Type=TFIniValue; Total size=32; Count=2 |
|--------------------------------------------------------------------------|
|004AD361|Project1.exe|FastIniFiles.pas|TFIniFile| Create |354[100]|
|004ACF13|Project1.exe|FastIniFiles.pas|TFIniFile| Create |243[9] |
----------------------------------------------------------------------------
Ein Leak soll gem. Anzeige oben hier auftreten:
Delphi-Quellcode:
constructor TFIniFile.Create(const FileName: string; CommentChar: Char = '#');
var
  Stream: TStream;
begin
  //...
  Self := Create(Stream);
  Stream.Free;
end;
Warum denn? Das Ini File wird ja wieder freigegeben und sobit der Stream auch??

Zudem gibt es noch etliche andere Leaks. Vermutlich in den Destruktoren. Wer findet noch welche?

Genügt z.B das Finalize oder braucht es noch ein for i := Low(Values) to High(Values) do Values[i].Free; ?

Delphi-Quellcode:
destructor TFIniSection.Free;
var
 i: Integer;
begin
  Name := '';
  Finalize(Values);
  inherited Free;
end;
  Mit Zitat antworten Zitat