Da werden einige
Variablen Objekte (Krümelkackermode: "Instanz einer Klasse") erzeugt, aber nicht wieder freigegeben, vor allem in den Funktionen BuiltIDList und BuiltIDListEx. Da letztere noch dazu in einer Schleife x-fach aufgerufen wird, dengeln dann mehrere Objekte von http und ssl im Speicher rum -> Speicherleck. Dagegen hilft einerseits konsequentes Einhalten von Coding-Richtlinien* und andererseits ReportMemoryLeaksOnShutdown oder andere Tools zum Finden von Speicherlecks.
[EDIT] Da gibt's sogar noch weitere Objekte in den anderen Funktionen, die nicht wieder freigegeben werden. [/QUOTE]
*) Man muss sich einfach selbst zwingen, sauber zu schreiben, d.h. sofort beim Erzeugen eines Objekts das Freigeben gleich mit hinschreiben, bevor man sich an den eigentlichen Code zum Verwenden des Objekts macht. Mal ein Beispiel: erst dieses Rumpfgerüst schreiben:
Delphi-Quellcode:
objekt:= TKlasse.Create;
try
// Code
finally
objekt.Free
end;
und dann erst im
try
-Block den eigentlichen Code hinzufügen. So gehe ich jedenfalls vor.
MfG Dalai
PS: Übrigens ist der Name BuiltIDList falsch, es müsste Buil
dIDList heißen, denn das Teil wird erst aufgebaut und wurde nicht bereits erzeugt (buil
t = Vergangenheitsform von buil
d).