DIRECTORY Imager, ImagerCompile, ImagerMemory; ImagerCompileImpl: CEDAR PROGRAM IMPORTS Imager, ImagerMemory EXPORTS ImagerCompile ~ BEGIN Context: TYPE ~ Imager.Context; CompiledImage: TYPE ~ REF CompiledImageRep; CompiledImageRep: PUBLIC TYPE ~ RECORD [ memory: Context ]; MakeCompiledImage: PUBLIC PROC [action: PROC [Context]] RETURNS [CompiledImage] ~ { context: Context ~ ImagerMemory.NewMemoryContext[]; action[context]; RETURN [NEW[CompiledImageRep _ [memory: context]]] }; Execute: PUBLIC PROC [context: Imager.Context, compiledImage: CompiledImage] ~ { IF compiledImage.memory = NIL THEN ERROR Imager.Error[[$ClientBug, "Attempt to execute compiled image that has been destroyed"]]; ImagerMemory.Replay[c: compiledImage.memory, into: context]; }; Destroy: PUBLIC PROC [compiledImage: CompiledImage] ~ { compiledImage.memory _ NIL; }; END. ΚImagerCompileImpl.mesa Copyright c 1985 by Xerox Corporation. All rights reserved. Michael Plass, October 21, 1985 5:34:55 pm PDT CachedDataRep: TYPE ~ RECORD [ kindOfContext: ATOM, . . . ]; Κ‡˜™Icodešœ Οmœ1™