Avoid rare crashes due to "C-g C-g" on TTY frames
* src/term.c (tty_send_additional_strings): Don't use SBYTES, as this function could be called in the middle of GC. (Bug#77205)
This commit is contained in:
parent
467aba67db
commit
939a2a3c2d
1 changed files with 8 additions and 2 deletions
10
src/term.c
10
src/term.c
|
@ -184,9 +184,15 @@ tty_send_additional_strings (struct terminal *terminal, Lisp_Object sym)
|
|||
Lisp_Object string = XCAR (extra_codes);
|
||||
if (STRINGP (string))
|
||||
{
|
||||
fwrite (SDATA (string), 1, SBYTES (string), tty->output);
|
||||
struct Lisp_String *str = XSTRING (string);
|
||||
/* Don't use SBYTES, as that is not protected from GC. */
|
||||
ptrdiff_t sbytes
|
||||
= (str->u.s.size_byte < 0
|
||||
? str->u.s.size & ~ARRAY_MARK_FLAG
|
||||
: str->u.s.size_byte);
|
||||
fwrite (SDATA (string), 1, sbytes, tty->output);
|
||||
if (tty->termscript)
|
||||
fwrite (SDATA (string), 1, SBYTES (string), tty->termscript);
|
||||
fwrite (SDATA (string), 1, sbytes, tty->termscript);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue