Zitat von
Spider:
sorry, wusste doch, ich hab was vergessen. TUpdate hat keinen destructor.
Irgendwo musst du aber auf einen freigegebenen Zeiger zugreifen. In dem gezeigten Code dürfte nichts zu einer
AV führen...
Nur mal so am Rande...
Zitat von
Spider:
Erzeugen tu ich so:
Delphi-Quellcode:
constructor TLiveUpdate.Create;
begin
FFiles := TObjectList.Create;
Updates := TObjectList.Create;
...
Zitat von
Spider:
FreeAndNil(Updates); // steppe per F7 hier her
Merkst du was? Wenn nicht: Cursor auf TObjectList -> [F1] -> Konstruktor anschauen -> dort oder unter "see also" dürfte dir erklärt werden warum du ein MemLeak hast.
Wobei ich trotz des MemLeak keinen Grund für einen Zugriff auf ein nil-Referenz sehe.
Wenn du FreeAndNil wegnimmst und ein normales Free aufrufst... Ändert sich jetzt die Adresse der
AV?
Wenn ja greifst du noch auf die Felder zu.