Einzelnen Beitrag anzeigen

Benmik

Registriert seit: 11. Apr 2009
542 Beiträge
 
Delphi 11 Alexandria
 
#1

FreeAndNil macht Probleme

  Alt 27. Sep 2020, 13:20
Delphi-Version: 10.3 Rio
Ich habe hier eine Unit mit einer Klasse, von TObject abgeleitet, nichts Besonderes mit einer Anzahl von Feldern und Prozeduren/Funktionen, die ungefähr 10 Klassen der gleichen Unit beherbergt. Diese Unit hat
Delphi-Quellcode:
procedure Clear;
procedure Free;
constructor Create;
Diese Unit habe ich nun in mein Programm eingebunden. Alles lief ohne Probleme, bis es auf einmal wüste Meldungen von FastMM hagelte, Hunderte von Speicherlecks. Ich habe mir einen Wolf gesucht, aber die Objektinstanz wurde immer ordnungsgemäß freigegeben. Endlich kam ich auf die Idee, einen Haltepunkt bei Free zu setzen.

Und da kam Folgendes raus: Wenn ich Objekt.Free geschrieben hatte, wurde die Prozedure auch durchlaufen. Aber nicht bei FreeAndNil(Objekt) . Als ich alles zu Free geändert hatte, gab FastMM sofort Ruhe.

Ist sowas bekannt? Ich habe meiner Erinnerung nach nichts an den Projektoptionen geändert, und in dem sonstigen Code kommt häufig FreeAndNil vor. Was sagen die Experten?

Vielleicht sollte ich noch sagen, dass mir meine Rio 10.3.3-Installation sowieso etwas merkwürdig vorkommt. Die roten Fehler-Krickel fehlen; Haltepunkte werden manchmal ignoriert, bis ich neu erzeuge; und bei einem Haltepunkt ist der Debugger nicht selten schon deutlich weiter. STRG + # funktioniert laufend nicht (-> Rechtsklick hilft). Vermutlich sagen jetzt alle, öh, neu installieren, aber kann das mit FreeAndNil so einfach sein?
  Mit Zitat antworten Zitat