(FILECREATED "12-Dec-85 16:36:48" {ERIS}<PROLOGCORE>PATCH>ALLOCPATCH.;1 1824         changes to:  (VARS ALLOCPATCHCOMS)		   (FNS \ALLOCVIRTUALPAGEBLOCK)      previous date: "12-Dec-85 16:29:57" {ERIS}<PROLOGCORE>PATCH>ALLOCPATCH.;2)(* Copyright (c) 1985 by Xerox Corporation. All rights reserved.)(PRETTYCOMPRINT ALLOCPATCHCOMS)(RPAQQ ALLOCPATCHCOMS ((FNS \ADVANCE.ARRAY.SEGMENTS)))(DEFINEQ(\ADVANCE.ARRAY.SEGMENTS  [LAMBDA (NXTPAGE)                                          (* bvm: "12-Dec-85 16:18")          (* * Called when the first 8mb are exhausted, and we want to switch array space into the next area, starting with 	  page NXTPAGE -- have to first clean up what's left in the old area)    (PROG (NCELLSLEFT)	    (SETQ.NOREF \ArrayFrLst2 (COND			  ((IGEQ [SETQ NCELLSLEFT				     (IPLUS (UNFOLD (SUB1 (IDIFFERENCE \NxtArrayPage									     (fetch (POINTER PAGE#)										of \ArrayFrLst)))						      CELLSPERPAGE)					      (IDIFFERENCE CELLSPERPAGE (fetch (POINTER 										       CELLINPAGE)									     of \ArrayFrLst]				   \MinArrayBlockSize)       (* Make the rest of the already allocated array space 							     into a small block)			    (\MERGEBACKWARD (\MAKEFREEARRAYBLOCK \ArrayFrLst NCELLSLEFT))			    (create POINTER				      PAGE# _ \LeastMDSPage))			  (T \ArrayFrLst)))	    [SETQ.NOREF \ARRAYSPACE2 (SETQ.NOREF \ArrayFrLst (create POINTER								       PAGE# _(SETQ \NxtArrayPage 									 NXTPAGE]                                                             (* Return code to tell \ALLOCBLOCK.NEW to notice the 							     new arrangement)	    (RETURN 0]))(PUTPROPS ALLOCPATCH COPYRIGHT ("Xerox Corporation" 1985))(DECLARE: DONTCOPY  (FILEMAP (NIL (405 1743 (\ADVANCE.ARRAY.SEGMENTS 415 . 1741)))))STOP