-- File: DBHeapStorageImpl.mesa -- Contents: to enable counting of allocs and de-allocs DIRECTORY DBHeapStorage, Storage; DBHeapStorageImpl: PROGRAM IMPORTS Storage EXPORTS DBHeapStorage = BEGIN allocCount: INT ← 0; flag: BOOL← FALSE; sizeCount: INT ← 0; Node: PUBLIC PROC [size: CARDINAL] RETURNS [POINTER] = { temp: POINTER ←Storage.Node[size]; allocCount← allocCount+1; IF size=5 THEN flag← TRUE; -- just to give place to set breakpoint sizeCount← sizeCount + LOOPHOLE[temp-1, POINTER TO CARDINAL]↑; RETURN[temp] }; Free: PUBLIC PROC [object: POINTER] = { allocCount← allocCount-1; sizeCount← sizeCount - LOOPHOLE[object-1, POINTER TO CARDINAL]↑; Storage.Free[object] }; END.--DBHeapStorage CHANGE LOG