Commit d5ec18c6 authored by Stefan Monnier's avatar Stefan Monnier

* src/regex-emacs.c (re_match_2_internal): Rework comment in last change

Explain why we don't need to worry about Lisp modifying the buffer.

* src/syntax.c (parse_sexp_propertize): Fix name in error message.
parent 4df8a611
Pipeline #5313 passed with stage
in 55 minutes and 32 seconds
......@@ -3959,9 +3959,11 @@ re_match_2_internal (struct re_pattern_buffer *bufp,
/* Prevent shrinking and relocation of buffer text if GC happens
while we are inside this function. The calls to
UPDATE_SYNTAX_TABLE_* macros can trigger GC if they call Lisp,
and we have C pointers to buffer text that must not become
invalid as result of GC. */
UPDATE_SYNTAX_TABLE_* macros can call Lisp (via
`internal--syntax-propertize`); these calls are careful to defend against
buffer modifications, but even with no modifications, the buffer text may
be relocated during GC by `compact_buffer` which would invalidate
our C pointers to buffer text. */
if (!current_buffer->text->inhibit_shrinking)
{
record_unwind_protect_ptr (unwind_re_match, current_buffer);
......
......@@ -480,10 +480,10 @@ parse_sexp_propertize (ptrdiff_t charpos)
safe_call1 (Qinternal__syntax_propertize,
make_fixnum (min (zv, 1 + charpos)));
if (modiffs != CHARS_MODIFF)
error ("parse-sexp-propertize-function modified the buffer!");
error ("internal--syntax-propertize modified the buffer!");
if (syntax_propertize__done <= charpos
&& syntax_propertize__done < zv)
error ("parse-sexp-propertize-function did not move"
error ("internal--syntax-propertize did not move"
" syntax-propertize--done");
SETUP_SYNTAX_TABLE (charpos, 1);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment