From 0767f1818a25f1efeefeb24a96eecf553396b2ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mattias=20Engdeg=C3=A5rd?= Date: Thu, 18 Sep 2025 16:25:02 +0200 Subject: [PATCH] Don't save quitcounter across longjmp in exec_byte_code * src/bytecode.c (exec_byte_code): Reset quitcounter to 1 after longjmp; the exact value isn't important. This may reduce register pressure a tiny bit or at least remove a useless stack slot. --- src/bytecode.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/bytecode.c b/src/bytecode.c index debb08c2347..318b96a12be 100644 --- a/src/bytecode.c +++ b/src/bytecode.c @@ -526,7 +526,6 @@ exec_byte_code (Lisp_Object fun, ptrdiff_t args_template, for (ptrdiff_t i = nargs - rest; i < nonrest; i++) PUSH (Qnil); - unsigned char volatile saved_quitcounter; #if GCC_LINT && __GNUC__ && !__clang__ Lisp_Object *volatile saved_vectorp; unsigned char const *volatile saved_bytestr_data; @@ -960,7 +959,7 @@ exec_byte_code (Lisp_Object fun, ptrdiff_t args_template, if (sys_setjmp (c->jmp)) { - quitcounter = saved_quitcounter; + quitcounter = 1; /* no need to restore old value */ struct handler *c = handlerlist; handlerlist = c->next; top = c->bytecode_top; @@ -990,7 +989,6 @@ exec_byte_code (Lisp_Object fun, ptrdiff_t args_template, goto op_branch; } - saved_quitcounter = quitcounter; #if GCC_LINT && __GNUC__ && !__clang__ saved_vectorp = vectorp; saved_bytestr_data = bytestr_data;