X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fir2tran.lisp;h=1941881ca46e9e6888b016e9b3edea9aa4504f9f;hb=f73c1f391342c797b8daebe4e8c27e5923341b6d;hp=ad400313462df723e8197873def6e7c024d2dc64;hpb=6053e7f804b430144bb09e2d107ad4ab3fb97db4;p=sbcl.git diff --git a/src/compiler/ir2tran.lisp b/src/compiler/ir2tran.lisp index ad40031..1941881 100644 --- a/src/compiler/ir2tran.lisp +++ b/src/compiler/ir2tran.lisp @@ -1341,25 +1341,25 @@ start next result (with-unique-names (bind unbind) (once-only ((n-save-bs '(%primitive current-binding-pointer))) - `(unwind-protect - (progn - (labels ((,unbind (vars) - (declare (optimize (speed 2) (debug 0))) - (dolist (var vars) - (%primitive bind nil var) - (makunbound var))) - (,bind (vars vals) - (declare (optimize (speed 2) (debug 0))) - (cond ((null vars)) - ((null vals) (,unbind vars)) - (t (%primitive bind - (car vals) - (car vars)) - (,bind (cdr vars) (cdr vals)))))) - (,bind ,vars ,vals)) - nil - ,@body) - (%primitive unbind-to-here ,n-save-bs)))))) + `(unwind-protect + (progn + (labels ((,unbind (vars) + (declare (optimize (speed 2) (debug 0))) + (dolist (var vars) + (%primitive bind nil var) + (makunbound var))) + (,bind (vars vals) + (declare (optimize (speed 2) (debug 0))) + (cond ((null vars)) + ((null vals) (,unbind vars)) + (t (%primitive bind + (car vals) + (car vars)) + (,bind (cdr vars) (cdr vals)))))) + (,bind ,vars ,vals)) + nil + ,@body) + (%primitive unbind-to-here ,n-save-bs)))))) ;;;; non-local exit