[movitz-cvs] CVS movitz/losp/muerte

ffjeld ffjeld at common-lisp.net
Tue Mar 21 20:20:20 UTC 2006


Update of /project/movitz/cvsroot/movitz/losp/muerte
In directory clnet:/tmp/cvs-serv3269

Modified Files:
	basic-functions.lisp 
Log Message:
Have apply check that the tail argument is a list.


--- /project/movitz/cvsroot/movitz/losp/muerte/basic-functions.lisp	2005/08/26 19:39:20	1.20
+++ /project/movitz/cvsroot/movitz/losp/muerte/basic-functions.lisp	2006/03/21 20:20:20	1.21
@@ -10,7 +10,7 @@
 ;;;; Author:        Frode Vatvedt Fjeld <frodef at acm.org>
 ;;;; Created at:    Tue Sep  4 18:41:57 2001
 ;;;;                
-;;;; $Id: basic-functions.lisp,v 1.20 2005/08/26 19:39:20 ffjeld Exp $
+;;;; $Id: basic-functions.lisp,v 1.21 2006/03/21 20:20:20 ffjeld Exp $
 ;;;;                
 ;;;;------------------------------------------------------------------
 
@@ -229,7 +229,7 @@
 	  (:jz 'more-than-three-args)
 	 no-more-args
 	  ;; Calculate numargs from (esp-ebp)..
-	  (:leal (:ebp -8 8) :ecx)
+	  (:leal (:ebp -8 8) :ecx)	; debugger also "knows" this offset..
 	  (:subl :esp :ecx)
 	  (:shrl 2 :ecx)
 	  ;; Encode ECX
@@ -258,8 +258,9 @@
        ((null (cdr args))
 	(apply function (car args)))
        (t (let* ((second-last-cons (last args 2))
-		 (last-cons (cdr second-last-cons)))
-	    (setf (cdr second-last-cons) (car last-cons))
+		 (tail (cadr second-last-cons)))
+	    (check-type tail list)
+	    (setf (cdr second-last-cons) tail)
 	    (apply function args)))))))
 
 (defun values (&rest objects)




More information about the Movitz-cvs mailing list