1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-25 06:50:46 -08:00

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.
This commit is contained in:
Mattias Engdegård 2025-09-18 16:25:02 +02:00
parent 979ddc0601
commit 0767f1818a

View file

@ -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;