From: Andrea Corallo Date: Sun, 14 Jul 2019 19:26:20 +0000 (+0200) Subject: byte-varbind byte-unbind X-Git-Tag: emacs-28.0.90~2727^2~1347 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=5aee49d203aeae2dabd1263736c0c6bf799f4f8e;p=emacs.git byte-varbind byte-unbind --- diff --git a/lisp/emacs-lisp/comp.el b/lisp/emacs-lisp/comp.el index 116a1c24456..10fe10fed20 100644 --- a/lisp/emacs-lisp/comp.el +++ b/lisp/emacs-lisp/comp.el @@ -394,11 +394,20 @@ If NEGATED non nil negate the test condition." ,(make-comp-mvar :const-vld t :constant arg) ,(comp-slot)))) - (byte-varbind) + (byte-varbind + (comp-emit `(call specbind + ,(make-comp-mvar :const-vld t + :constant arg) + ,(comp-slot-next)))) (byte-call (comp-stack-adjust (- arg)) (comp-emit-set-call `(callref Ffuncall ,(1+ arg) ,(comp-sp)))) - (byte-unbind) + (byte-unbind + (comp-emit `(call unbind_to + ,(make-comp-mvar :const-vld t + :constant arg) + ,(make-comp-mvar :const-vld t + :constant nil)))) (byte-pophandler) (byte-pushconditioncase) (byte-pushcatch)