From 8752c9540cba1078a11746f35fc3c071e9a0fac2 Mon Sep 17 00:00:00 2001 From: Chris Hanson Date: Tue, 14 Mar 1989 19:35:30 +0000 Subject: [PATCH] The `block/procedure' of a block is not always a procedure (it might be an expression). Sometimes must check it to make sure. --- v7/src/compiler/rtlgen/rgretn.scm | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/v7/src/compiler/rtlgen/rgretn.scm b/v7/src/compiler/rtlgen/rgretn.scm index 7e0974e1d..cd0c891bc 100644 --- a/v7/src/compiler/rtlgen/rgretn.scm +++ b/v7/src/compiler/rtlgen/rgretn.scm @@ -1,6 +1,6 @@ #| -*-Scheme-*- -$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/rtlgen/rgretn.scm,v 4.11 1988/12/13 13:45:23 cph Exp $ +$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/rtlgen/rgretn.scm,v 4.12 1989/03/14 19:35:30 cph Rel $ Copyright (c) 1988 Massachusetts Institute of Technology @@ -69,9 +69,11 @@ MIT in each case. |# (define (generate/return* context operator not-on-stack? operand) (let ((continuation (rvalue-known-value operator))) (if (and continuation - (not (procedure/simplified? - (block-procedure - (continuation/closing-block continuation))))) + (let ((procedure + (block-procedure + (continuation/closing-block continuation)))) + (not (and (procedure? procedure) + (procedure/simplified? procedure))))) ((method-table-lookup simple-methods (continuation/type continuation)) (if not-on-stack? (return-operator/pop-frames context operator 0) -- 2.25.1