From: Chris Hanson <org/chris-hanson/cph>
Date: Wed, 24 Apr 2002 19:21:21 +0000 (+0000)
Subject: Use lambda abstraction rather than bypassing it.
X-Git-Tag: 20090517-FFI~2186
X-Git-Url: https://birchwood-abbey.net/git?a=commitdiff_plain;h=da1d694eb2393da48a2ecb7261dd7a02f4f66fd4;p=mit-scheme.git

Use lambda abstraction rather than bypassing it.
---

diff --git a/v7/src/runtime/runtime.pkg b/v7/src/runtime/runtime.pkg
index 5410c4f7f..fdde72266 100644
--- a/v7/src/runtime/runtime.pkg
+++ b/v7/src/runtime/runtime.pkg
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Id: runtime.pkg,v 14.412 2002/03/01 17:02:46 cph Exp $
+$Id: runtime.pkg,v 14.413 2002/04/24 19:21:21 cph Exp $
 
 Copyright (c) 1988-2002 Massachusetts Institute of Technology
 
@@ -1939,7 +1939,9 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 	  lambda-wrap-body!
 	  lambda-wrapper-components)
   (export (runtime environment)
-	  internal-lambda?)
+	  internal-lambda?
+	  lambda-names-vector
+	  make-slambda)
   (export (runtime compiler-info)
 	  lambda-tag:internal-lambda
 	  lambda-tag:internal-lexpr)
diff --git a/v7/src/runtime/uenvir.scm b/v7/src/runtime/uenvir.scm
index 33a75c3a6..4d09fa14c 100644
--- a/v7/src/runtime/uenvir.scm
+++ b/v7/src/runtime/uenvir.scm
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Id: uenvir.scm,v 14.56 2002/02/13 01:02:55 cph Exp $
+$Id: uenvir.scm,v 14.57 2002/04/24 19:21:01 cph Exp $
 
 Copyright (c) 1988-1999, 2001, 2002 Massachusetts Institute of Technology
 
@@ -340,7 +340,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 	(append! (do-frame environment) (do-frame external)))))
 
 (define (walk-ic-procedure-args frame procedure keep? map-entry)
-  (let ((name-vector (system-pair-cdr (procedure-lambda procedure))))
+  (let ((name-vector (lambda-names-vector (procedure-lambda procedure))))
     (let loop ((index (vector-length name-vector)) (result '()))
       (if (fix:> index 1)
 	  (let ((index (fix:- index 1)))
@@ -434,10 +434,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
   (system-list->vector
    (ucode-type environment)
    (cons (system-pair-cons (ucode-type procedure)
-			   (system-pair-cons (ucode-type lambda)
-					     unspecific
-					     (list->vector
-					      (cons lambda-tag:unnamed names)))
+			   (make-slambda lambda-tag:unnamed names unspecific)
 			   environment)
 	 (if (eq? values 'DEFAULT)
 	     (let ((values (make-list (length names))))