From 5aee49d203aeae2dabd1263736c0c6bf799f4f8e Mon Sep 17 00:00:00 2001 From: Andrea Corallo Date: Sun, 14 Jul 2019 21:26:20 +0200 Subject: [PATCH] byte-varbind byte-unbind --- lisp/emacs-lisp/comp.el | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) 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) -- 2.39.5