![]() |
AW: ZIP File names memory leak
@Uwe Raabe
Jetzt wird es abenteuerlich. Aber ja, hier ein Beispielcode: Project1:
Delphi-Quellcode:
Unit1 implementation:
ReportMemoryLeaksOnShutdown := true;
Application.Initialize; Application.MainFormOnTaskbar := True; Application.CreateForm(TForm1, Form1); Application.Run;
Delphi-Quellcode:
uses zip;
{$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); var zip: TZipFile; begin zip := TZipFile.Create; zip.Open('C:\Users\[...]\Desktop\ActuallyAdditions-1.12.2-r151-2.zip', zmRead); zip.FileNames; zip.Free; end; |
AW: ZIP File names memory leak
Mal ne ganz andere Frage:
Wie sieht Dein class destructor vom TZipFile aus? bei mir freet er dort jedenfalls micht direkt das FCP437Encoding... |
AW: ZIP File names memory leak
Zitat:
Delphi-Quellcode:
Bis 10.3.2 wird das noch nicht gemacht! Deswegen auch mein Hinweis auf die genaue Version, mit der ich das getestet habe.
class destructor TZipFile.Destroy;
begin FCompressionHandler.Free; FCP437Encoding.Free; end; |
AW: ZIP File names memory leak
Delphi-Quellcode:
Das sollte man vermeiden - Variablen gleich benennen wie eine Unit...
uses zip;
... var zip: TZipFile; ... Frank |
AW: ZIP File names memory leak
Zitat:
Delphi-Quellcode:
uses zip;
{$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); var zip: TZipFile; begin zip := TZipFile.Create; try zip.Open('C:\Users\[...]\Desktop\ActuallyAdditions-1.12.2-r151-2.zip', zmRead); zip.FileNames; finally zip.Free; end; end; |
AW: ZIP File names memory leak
Ich vermute, es liegt an der Delphi-Version. 10.3 ist eben nicht immer gleich 10.3.
|
AW: ZIP File names memory leak
Himitsu,
![]() Himitsu, ![]() Alle Achtung. Da hätte ich ein Schlafleck, weil mein Tagesstress nicht freigegeben wurde. |
AW: ZIP File names memory leak
|
AW: ZIP File names memory leak
Zitat:
Delphi-Quellcode:
oder in diesem Fall könntest du das "sl" auch im äusseren try/finally freigeben, weil "sl" NIL ist solange es ncht erzeugt wurde und es so beim Free keien Problem gibt. Free überprüft ob die Instanz NIL ist.
var
zip: TZipFile; sl: TStringList; begin zip := TZipFile.Create; try zip.Open(APath, zmRead); sl := TStringList.Create; try sl.AddStrings(zip.FileNames); // Ohne diese Zeile kein Leak finally sl.Free; end; finally zip.Free; end; end;
Delphi-Quellcode:
var
zip: TZipFile; sl: TStringList; begin zip := TZipFile.Create; try zip.Open(APath, zmRead); sl := TStringList.Create; sl.AddStrings(zip.FileNames); // Ohne diese Zeile kein Leak finally sl.Free; zip.Free; end; end; |
AW: ZIP File names memory leak
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:08 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz