Lade...
 

GarbageColl

GarbageColl

In 4.2 veraltet, bitte den Garbage-Manager verwenden!

GarbageColl

Stack
Stack Position Beschreibung
Stack(In) Top -
Stack(Out) Top -

Startet einen Garbage-Collection-Prozeß, der Speicherbereiche,  die von

einer durch ein Event getriggerte Anweisungsfolge auf dem Stack hinterlassen werden, zurückgewinnt.
Für elementare Datentypen (ganze Zahlen, Zeichenketten, multiple Zeichenketten, ...) geschieht dies automatisch; es gibt keinen Grund, diesen Vorgang überhaupt zur Kenntnis zu nehmen. Aber auch der Speicher, den ein transientes Objekt X einst belegt hat, soll freigegeben werden. Der Garbage-Collection-Algorithmus kann - zumindest in diesem Release - nicht feststellen, ob X von einem weiteren (transienten) Objekt Y referenziert wird. Solange X und Y auf dem Stack liegen oder Variablen zugewiesen sind, ist alles gut. Wird dann nur X frei, enthält Y nach der nächsten Garbage-Collection eine Referenz auf ein nicht existentes Objekt. Dies zu verhindern gibt es zwei Möglichkeiten:

  • dafür sorgen, dass das referenzierte Objekt X in einer Variablen gehalten wird (solange Y existiert)
  • X explizit von der Garbage-Collection ausschließen  (siehe CreateTransObject)

    und später selbst (mit DeleteObject) freigeben Dieses Problem betrifft auch (transiente) Objekte als Rückgabewert einer Funktion: Die im MDI angegebene Signatur bestimmt, ob InstantView® das Objekt von der Garbage-Collection ausschließt oder

    nicht.