diff --git a/code/macros.lisp b/code/macros.lisp index 46173bc043405b4b11c004f55f2c1a9d01f80b5d..42d5fa16fa97c694c3275b16799dbc5343923bdd 100644 --- a/code/macros.lisp +++ b/code/macros.lisp @@ -7,7 +7,7 @@ ;;; Scott Fahlman or slisp-group@cs.cmu.edu. ;;; (ext:file-comment - "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/macros.lisp,v 1.30 1992/03/31 05:26:39 wlott Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/macros.lisp,v 1.31 1992/04/02 02:01:40 wlott Exp $") ;;; ;;; ********************************************************************** ;;; @@ -951,20 +951,16 @@ (get-setf-method place env) (let ((newval (gensym)) (ptemp (gensym)) - (def-temp (gensym))) - (values `(,@temps ,(car stores) ,ptemp ,@(if default `(,def-temp))) - `(,@values ,get ,prop ,@(if default `(,default))) + (def-temp (if default (gensym)))) + (values `(,@temps ,ptemp ,@(if default `(,def-temp))) + `(,@values ,prop ,@(if default `(,default))) `(,newval) - `(progn (setq ,(car stores) - (%putf ,(car stores) ,ptemp ,newval)) - ,set - ,newval) - `(getf ,(car stores) ,ptemp ,@(if default `(,def-temp))))))) + `(let ((,(car stores) (%putf ,get ,ptemp ,newval))) + ,set + ,newval) + `(getf ,get ,ptemp ,@(if default `(,def-temp))))))) (define-setf-method get (symbol prop &optional default) - "Get turns into %put. Don't put in the default unless it really is supplied - and non-nil, so that we can transform into the get instruction whenever - possible." (let ((symbol-temp (gensym)) (prop-temp (gensym)) (def-temp (gensym))