-- Fugleman.mesa -- Last changed by Doug Wyatt, September 6, 1980 11:34 AM Fugleman: DEFINITIONS = { Handle: TYPE = LONG POINTER TO Object; New: PROC[foo: INTEGER] RETURNS[Handle]; Mumble: PROC[self: Handle] = INLINE { self.procs.Mumble[self] }; Copy: PROC[self: Handle] RETURNS[Handle] = INLINE { RETURN[self.procs.Copy[self]] }; Free: PROC[selfPtr: LONG POINTER TO Handle] = INLINE { IF selfPtr^#NIL THEN selfPtr^.procs.Free[selfPtr] }; Object: PRIVATE TYPE = RECORD [ procs: LONG POINTER TO READONLY Procs, data: LONG POINTER TO Data ]; Procs: PRIVATE TYPE = RECORD [ Mumble: PROC[self: Handle], Copy: PROC[self: Handle] RETURNS[Handle], Free: PROC[selfPtr: LONG POINTER TO Handle] ]; Data: PRIVATE TYPE; FuglemanImpl: PROGRAM; }.(670)