From: Christophe R. <cr...@us...> - 2002-11-14 19:03:23
|
Update of /cvsroot/sbcl/sbcl/src/pcl In directory usw-pr-cvs1:/tmp/cvs-serv7407/src/pcl Modified Files: boot.lisp low.lisp Log Message: 0.7.9.49: Fix bug 136 (CALL-NEXT-METHOD and lexical rebinding of arguments): entomotomy: call-next-method-lexical-args ... delete the MACROLET "optimization" path Index: boot.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/src/pcl/boot.lisp,v retrieving revision 1.60 retrieving revision 1.61 diff -u -d -r1.60 -r1.61 --- boot.lisp 8 Nov 2002 16:23:02 -0000 1.60 +++ boot.lisp 14 Nov 2002 19:03:18 -0000 1.61 @@ -1093,18 +1093,6 @@ (null closurep) (null applyp)) `(let () ,@body)) - ((and (null closurep) - (null applyp)) - ;; OK to use MACROLET, and all args are mandatory - ;; (else APPLYP would be true). - `(call-next-method-bind - (macrolet ((call-next-method (&rest cnm-args) - `(call-next-method-body ,',method-name-declaration - ,(when cnm-args - `(list ,@cnm-args)))) - (next-method-p () - `(next-method-p-body))) - ,@body))) (t `(call-next-method-bind (flet (,@(and call-next-method-p Index: low.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/src/pcl/low.lisp,v retrieving revision 1.24 retrieving revision 1.25 diff -u -d -r1.24 -r1.25 --- low.lisp 7 Nov 2002 18:08:50 -0000 1.24 +++ low.lisp 14 Nov 2002 19:03:19 -0000 1.25 @@ -285,6 +285,10 @@ (std-instance-slots instance) (fsc-instance-slots instance))) (defun get-slots-or-nil (instance) + ;; Supress a code-deletion note. FIXME: doing the FIXME above, + ;; integrating PCL more with the compiler, would remove the need for + ;; this icky stuff. + (declare (optimize (inhibit-warnings 3))) (when (pcl-instance-p instance) (get-slots instance))) |