From d877969670746ced74b18731dc3884b5715ee655 Mon Sep 17 00:00:00 2001 From: "Guillermo J. Rozas" Date: Mon, 20 Sep 1993 19:12:59 +0000 Subject: [PATCH] Simplify interface to purify. --- v7/src/runtime/gc.scm | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/v7/src/runtime/gc.scm b/v7/src/runtime/gc.scm index 56cf31754..a0767b8cb 100644 --- a/v7/src/runtime/gc.scm +++ b/v7/src/runtime/gc.scm @@ -1,6 +1,6 @@ #| -*-Scheme-*- -$Id: gc.scm,v 14.11 1993/09/20 19:10:58 gjr Exp $ +$Id: gc.scm,v 14.12 1993/09/20 19:12:59 gjr Exp $ Copyright (c) 1988-93 Massachusetts Institute of Technology @@ -81,7 +81,10 @@ MIT in each case. |# (cond ((not (null? pure-space-queue)) (let ((result (purify-internal pure-space-queue true safety-margin))) - (cond ((not (car result)) + (cond ((not (pair? result)) + ;; Wrong phase -- wait until next time. + (real-default)) + ((not (car result)) (set! pure-space-queue (cdr pure-space-queue)) (queued-purification-failure)) ((eq? (car result) true) @@ -93,7 +96,9 @@ MIT in each case. |# ((not (null? constant-space-queue)) (let ((result (purify-internal constant-space-queue false safety-margin))) - (cond ((not (car result)) + (cond ((not (pair? result)) + (real-default)) + ((not (car result)) (set! constant-space-queue (cdr constant-space-queue)) (queued-purification-failure)) ((eq? (car result) true) @@ -116,12 +121,12 @@ MIT in each case. |# (purify-internal item pure-space? default-safety-margin))) - (cond ((not (car result)) - (error "PURIFY: not enough room in constant space" - item)) - ((not (eq? (car result) true)) + (cond ((not (pair? result)) ;; Wrong phase -- try again. (loop)) + ((not (car result)) + (error "PURIFY: not enough room in constant space" + item)) (else unspecific))))) (pure-space? -- 2.25.1