Einzelnen Beitrag anzeigen

Schokohase
(Gast)

n/a Beiträge
 
#5

AW: TNotification DisposeOf oder Free?

  Alt 7. Jun 2018, 11:05
Ein dangling pointer ist etwas gänzlich anderes und hat auch noch seine ganz eigenen Tücken.

NON-ARC (dangling pointer)

Ich habe irgendwo eine Referenz auf eine Instanz vom Typ TFoo. An irgendeiner Stelle im Programm wird diese Instanz freigeben. Jeder Zugriff auf diese Instanz würde jetzt eine Exception produzieren.

Aber, wenn im wieteren Verlauf der Anwendung eine Instanz erzeugt wird, die vom Typ TFoo oder Ableitung ist oder in der VMT an der gleiche Stelle eine Methode mit der gleichen Signatur besitzt und man verwendet jetzt diese alte TFoo Instanz (die, die eigentlich entsorgt wurde), dann gibt es keine Exception (obwohl es eine geben müsste).

Es gibt also ein Szenario, wo es keine Exception gibt, obwohl es eine bräuchte.

ARC

Dieses oben skizzierte Szenario gibt es bei ARC nicht. Nach einem DisposeOf wird zuverlässig eine Exception geworfen, garantiert.
  Mit Zitat antworten Zitat