]> git.eshelyaron.com Git - emacs.git/commitdiff
add record_unwind_protect_excursion support
authorAndrea Corallo <andrea_corallo@yahoo.it>
Sun, 11 Aug 2019 10:24:15 +0000 (12:24 +0200)
committerAndrea Corallo <akrl@sdf.org>
Wed, 1 Jan 2020 10:33:59 +0000 (11:33 +0100)
lisp/emacs-lisp/comp.el
src/comp.c

index 29d1625009f91ab7bde15800724d59f9a8c64693..6fa098e0eb47bdab9de184f9ab3234cb95cce788 100644 (file)
@@ -635,7 +635,8 @@ the annotation emission."
       (byte-discard 'pass)
       (byte-dup
        (comp-copy-slot (1- (comp-sp))))
-      (byte-save-excursion)
+      (byte-save-excursion
+       (comp-emit '(call record_unwind_protect_excursion)))
       (byte-save-window-excursion-OBSOLETE)
       (byte-save-restriction)
       (byte-catch)
index 7f1219780cc0f1079d4b026cf883135e83f1f643..90fa5ccdfa326c925b66e2952eb8a5a1c15ce2c8 100644 (file)
@@ -2073,6 +2073,8 @@ DEFUN ("comp-init-ctxt", Fcomp_init_ctxt, Scomp_init_ctxt,
                        emit_simple_limple_call_void_ret);
       register_emitter (Qrecord_unwind_current_buffer,
                        emit_simple_limple_call_lisp_ret);
+      register_emitter (Qrecord_unwind_protect_excursion,
+                       emit_simple_limple_call_void_ret);
     }
 
   comp.ctxt = gcc_jit_context_acquire();
@@ -2452,6 +2454,7 @@ syms_of_comp (void)
   DEFSYM (Qentry, "entry");
   DEFSYM (Qset_internal, "set_internal");
   DEFSYM (Qrecord_unwind_current_buffer, "record_unwind_current_buffer");
+  DEFSYM (Qrecord_unwind_protect_excursion, "record_unwind_protect_excursion");
   DEFSYM (Qhelper_unbind_n, "helper_unbind_n");
   DEFSYM (Qhelper_unwind_protect, "helper_unwind_protect");