]> git.eshelyaron.com Git - emacs.git/commitdiff
byte-varbind byte-unbind
authorAndrea Corallo <andrea_corallo@yahoo.it>
Sun, 14 Jul 2019 19:26:20 +0000 (21:26 +0200)
committerAndrea Corallo <akrl@sdf.org>
Wed, 1 Jan 2020 10:33:54 +0000 (11:33 +0100)
lisp/emacs-lisp/comp.el

index 116a1c24456741084c63966d438f3ceb3cffa3ba..10fe10fed203fb179e614479d3f037e640695b4d 100644 (file)
@@ -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)