aboutsummaryrefslogtreecommitdiffstats
path: root/src/comp.c
diff options
context:
space:
mode:
authorAndrea Corallo2019-11-09 11:43:16 +0100
committerAndrea Corallo2020-01-01 11:38:01 +0100
commit6761e69a2bce255bbd78e08b5c592f4de19253f5 (patch)
tree0a5bafd537d9e5c003c40cb396d30b780f189589 /src/comp.c
parent93aeb781e1da3cab6ae90c90cd3668862155ab85 (diff)
downloademacs-6761e69a2bce255bbd78e08b5c592f4de19253f5.tar.gz
emacs-6761e69a2bce255bbd78e08b5c592f4de19253f5.zip
fix missing byte-save-restriction op
Diffstat (limited to 'src/comp.c')
-rw-r--r--src/comp.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/comp.c b/src/comp.c
index 1aa0636c5b7..4afba1183f3 100644
--- a/src/comp.c
+++ b/src/comp.c
@@ -183,6 +183,7 @@ Lisp_Object helper_save_window_excursion (Lisp_Object v1);
183void helper_unwind_protect (Lisp_Object handler); 183void helper_unwind_protect (Lisp_Object handler);
184Lisp_Object helper_temp_output_buffer_setup (Lisp_Object x); 184Lisp_Object helper_temp_output_buffer_setup (Lisp_Object x);
185Lisp_Object helper_unbind_n (Lisp_Object n); 185Lisp_Object helper_unbind_n (Lisp_Object n);
186void helper_save_restriction (void);
186bool helper_PSEUDOVECTOR_TYPEP_XUNTAG (Lisp_Object a, enum pvec_type code); 187bool helper_PSEUDOVECTOR_TYPEP_XUNTAG (Lisp_Object a, enum pvec_type code);
187 188
188 189
@@ -1695,6 +1696,8 @@ declare_runtime_imported_funcs (void)
1695 args[0] = comp.lisp_obj_type; 1696 args[0] = comp.lisp_obj_type;
1696 ADD_IMPORTED ("helper_unbind_n", comp.lisp_obj_type, 1, args); 1697 ADD_IMPORTED ("helper_unbind_n", comp.lisp_obj_type, 1, args);
1697 1698
1699 ADD_IMPORTED ("helper_save_restriction", comp.void_type, 0, NULL);
1700
1698 ADD_IMPORTED ("record_unwind_current_buffer", comp.void_type, 0, NULL); 1701 ADD_IMPORTED ("record_unwind_current_buffer", comp.void_type, 0, NULL);
1699 1702
1700 args[0] = args[1] = args[2] = comp.lisp_obj_type; 1703 args[0] = args[1] = args[2] = comp.lisp_obj_type;
@@ -3109,6 +3112,13 @@ helper_unbind_n (Lisp_Object n)
3109 return unbind_to (SPECPDL_INDEX () - XFIXNUM (n), Qnil); 3112 return unbind_to (SPECPDL_INDEX () - XFIXNUM (n), Qnil);
3110} 3113}
3111 3114
3115void
3116helper_save_restriction (void)
3117{
3118 record_unwind_protect (save_restriction_restore,
3119 save_restriction_save ());
3120}
3121
3112bool 3122bool
3113helper_PSEUDOVECTOR_TYPEP_XUNTAG (Lisp_Object a, enum pvec_type code) 3123helper_PSEUDOVECTOR_TYPEP_XUNTAG (Lisp_Object a, enum pvec_type code)
3114{ 3124{
@@ -3194,6 +3204,9 @@ load_comp_unit (dynlib_handle_ptr handle)
3194 } else if (!strcmp (f_str, "helper_unbind_n")) 3204 } else if (!strcmp (f_str, "helper_unbind_n"))
3195 { 3205 {
3196 f_relocs[i] = (void *) helper_unbind_n; 3206 f_relocs[i] = (void *) helper_unbind_n;
3207 } else if (!strcmp (f_str, "helper_save_restriction"))
3208 {
3209 f_relocs[i] = (void *) helper_save_restriction;
3197 } else if (!strcmp (f_str, "record_unwind_current_buffer")) 3210 } else if (!strcmp (f_str, "record_unwind_current_buffer"))
3198 { 3211 {
3199 f_relocs[i] = (void *) record_unwind_current_buffer; 3212 f_relocs[i] = (void *) record_unwind_current_buffer;