1.0.7.5: allow WITH-INTERRUPTS inside "system locked" sections
[sbcl.git] / src / code / early-setf.lisp
index c55cf6a..d184133 100644 (file)
@@ -393,21 +393,21 @@ GET-SETF-EXPANSION directly."
          (destructuring-bind
              (lambda-list (&rest store-variables) &body body)
              rest
-           (let ((arglist-var (gensym "ARGS-"))
+           (let ((whole-var (gensym "WHOLE-"))
                  (access-form-var (gensym "ACCESS-FORM-"))
                  (env-var (gensym "ENVIRONMENT-")))
              (multiple-value-bind (body local-decs doc)
                  (parse-defmacro `(,lambda-list ,@store-variables)
-                                 arglist-var body access-fn 'defsetf
+                                 whole-var body access-fn 'defsetf
+                                 :environment env-var
                                  :anonymousp t)
                `(eval-when (:compile-toplevel :load-toplevel :execute)
                   (assign-setf-macro
                    ',access-fn
                    (lambda (,access-form-var ,env-var)
-                     (declare (ignore ,env-var))
+                     ,@local-decs
                      (%defsetf ,access-form-var ,(length store-variables)
-                               (lambda (,arglist-var)
-                                 ,@local-decs
+                               (lambda (,whole-var)
                                  ,body)))
                    nil
                    ',doc))))))