Einzelnen Beitrag anzeigen

xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#9

Re: := NIL ist gleich free?

  Alt 27. Apr 2006, 10:02
Hallo,
Zitat von Bernhard Geyer:
Ich denke wenn Du den Assembler-Code anschaust wird für eine einfache := Nil-Zuweisung noch einiges an Code aufgerufen.
So viel ist das nicht. Eigentlich wird nur _Release aufgerufen.
Nochmal zum Verständnis:
Jedesmal, wenn eine neue Referenz auf ein Interface erzeugt wird, sorgt Delphi dafür, dass die Methode _AddRef des Interface aufgerufen wird. Beim Entfernen der Referenz (auf nil setzen, Scope verlassen) wird automatisch _Release aufgerufen. Deshalb sind z. B. Funktionen mit einem try..Finally umgeben. Im Finally wird _Release für alle lokalen Referenzen aufgerufen.
Da das alles die Compiler-Magic macht, bekommt der Programmierer davon normalerweise nichts mit.

Gruß
xaromz
  Mit Zitat antworten Zitat