
Zitat von
oki:
Ich dächte, dass ist sicherer sollte der Thread noch immer da sein:
Delphi-Quellcode:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if Assigned(OSMParser) then begin
OSMParser.Terminate;
OSMParser.WaitFor;
FreeAndNil(OSMParser);
end;
end;
Ok, das habe ich jetzt mal so umgesetzt. Musste gleichzeitig noch ne andere Schleife anpassen. Jetzt meldet mir FastMM immer noch eine Verletzung...

Zitat von
oki:
Mehr hab ich nich nicht durchgesehen. Compiling ging auch noch nicht. Bei mir werden die Units ZConnection, ZDataSet angemeckert.
Argh. Mein Fehler. Die beiden angemeckerten Units gehören zur ZEOSLib, download findet sich
hier[@Sourceforge, 1.6 MB].
Das Speicherleck konnte ich nicht komplett beheben, der Speicherverbrauch steigt zwar nicht mehr in den riesen Schritten wie vorher, aber er steigt halt immer noch.
Folgende Änderungen habe ich gemacht:
ORP_Extractor.pas, Zeile 538, folgendes hinzugefügt:
FreeAndNil(fRegAttrExpr);
ORP_Extractor.pas, Zeile 219, folgendes hinzugefügt:
FreeAndNil(fRegEx);
ORP_Extractor.pas, Zeile 202, folgendes kursiv hinzugefügt
while (fRegEx.MatchAgain) and (dwLenStr - dwCurPos > 20) [i]and not Terminated[/i] do
Ich lade oben gleich mal die neue Version hoch. Was mir beim FastMM-Log aufgefallen ist, ist dass der Trace Stack auch über die Funktionen der ZeosLib rüberläuft.

Ich hänge den Log mal hier mit an...