Einzelnen Beitrag anzeigen

Benutzerbild von mleyen
mleyen

Registriert seit: 10. Aug 2007
609 Beiträge
 
FreePascal / Lazarus
 
#12

Re: Wieso lässt sich "Destroy" manuell aufrufen?

  Alt 10. Jan 2010, 23:43
Zitat von Medium:
Wenn Destroy jetzt nicht grad abstarkt ist, ruft das den Destruktor nur von TObject auf, und hinterlässt ein erstelltes TBlub als Speicherleck. Da ich die Sourcen (bzw. Delphi) nicht hier hab, kann ich das nicht genau prüfen - aber sollte Free evtl. sowas behandeln? *kopfkratz* Irgendwas war da auf jeden Fall...
Delphi-Quellcode:
if Self <> nil then
  Destroy;
Also .Free ruft auch einfach nur .Destroy auf wenn der Objektpointer nicht genillt ist. also eigentlich kein Unterschied.
Das einzige Problem was ich an .Free sehe ist, das der ObjPointer nach dem Destroy nicht genillt wird, deshalb nutze ich meist Delphi-Referenz durchsuchenFreeAndNil.
Zum genannten Thread: Es existierte nicht genügent Code um sagen zu können, ob der Fehler am .Destroy lag. Um aber Fehler schneller ausfindig zu machen ist .Free bzw FreeAndNil empfehlenswert.
  Mit Zitat antworten Zitat