Lade...
 

CreateTransObject

CreateTransObject

CreateTransObject(CX_xxxxx)

Parameter: Bezeichner einer Klasse

Stack
Stack   Beschreibung
Stack(In)   -
Stack(Out)   das gerade erzeugte (transiente) Objekt

 

CreateTransObject(STACK)

Stack
Stack   Beschreibung
Stack(In)   Bezeichner einer Klasse
Stack(Out)   das gerade erzeugte (transiente) Objekt

Ein Objekt wird im transienten Speicher (auf dem Heap) erzeugt. Dabei wird der Default-Konstruktor der Klasse aufgerufen. Wenn keine Variable und kein Stack-Eintrag mehr auf das transiente Objekt verweisen, vermutet InstantView®, dass dieses Objekt nicht länger benötigt wird und löscht es automatisch bei der nächsten Garbage-Collection. InstantView® überprüft nicht, ob das zu löschende Objekt von einem anderen Objekt referenziert wird.
InstantView® kann aber in einem speziellen Test-Modus den Zugriff auf ein gelöschtes Objekt entdecken (siehe Anweisung KeepGarbage). In einem solchen Fall muss man entweder das referenzierte Objekt einer Variablen zuweisen oder die folgende Variante benutzen:

 

CreateTransObject(CX_xxxxx, KEEP)

Parameter:  Bezeichner einer Klasse, Flag KEEP

Stack
Stack   Beschreibung
Stack(In)   -
Stack(Out)   das gerade erzeugte (transiente) Objekt

 

CreateTransObject(, KEEP)

Stack
Stack   Beschreibung
Stack(In)   Bezeichner einer Klasse
Stack(Out)   das gerade erzeugte (transiente) Objekt

Ein Objekt wird im transienten Speicher (auf dem Heap) erzeugt (und der Default-Konstruktor der Klasse aufgerufen). KEEP sorgt dafür, dass das Objekt nicht in der GarbageCollection angemeldet wird und somit solange existiert, bis es explizit per DeleteObject oder CX_GARBAGE_MANAGER։։Register an der GarbageCollection angemeldet wurde und diese feststellt, dass das Objekt durch keine Variable mehr referenziert wird.

Alternativ kann das Objekt mit dem Befehl KillObject direkt gelöscht werden. Anschließend darf jedoch keine Variable mehr auf dieses Objekt verweisen, da dies zu Programmabstürzen führen würde.