Last modified on Mon Jun 20 10:51:26 PDT 1994 by kalsow
RTHeapMap provides the routines needed by the collector to walk runtime values.
INTERFACERTHeapMap ; IMPORT RT0; TYPE Visitor <: V_; V_ = OBJECT METHODS apply (a: ADDRESS) END; TYPE ObjectPtr = UNTRACED REF RT0.RefHeader; PROCEDURE WalkRef (h: ObjectPtr; v: Visitor);
For each traced reference at address 'x' in the object referenced by 'h', call 'v(x)'.
PROCEDURE DoWalkRef(t: RT0.TypeDefn; a: ADDRESS; v: Visitor);
For each traced reference at address 'x' in the object of type 't' starting at address 'a', call 'v(x)'.
PROCEDURE WalkGlobals (v: Visitor);
For each traced reference at address 'x' in a global var, call 'v(x)'.
PROCEDURE WalkModuleGlobals (v: Visitor; m: CARDINAL);
For each traced reference at address 'x' in a global variable of module 'm' (RTModule.Get(m)), call 'v(x)'
END RTHeapMap.