]> git.eshelyaron.com Git - emacs.git/commitdiff
* src/regex-emacs.c (re_match_2_internal): Rework comment in last change
authorStefan Monnier <monnier@iro.umontreal.ca>
Sun, 19 Apr 2020 03:01:43 +0000 (23:01 -0400)
committerStefan Monnier <monnier@iro.umontreal.ca>
Sun, 19 Apr 2020 03:01:43 +0000 (23:01 -0400)
Explain why we don't need to worry about Lisp modifying the buffer.

* src/syntax.c (parse_sexp_propertize): Fix name in error message.

src/regex-emacs.c
src/syntax.c

index f456b495397db386972e3a11863256d9222ee822..5e23fc94e4f542f21fec16b9a5bfcac080c9d2b6 100644 (file)
@@ -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);
index e24b98da32a6575a33445598f8287e3f4c2c0a4c..a79ab863367bad7a7d83c71355feeab01c59d340 100644 (file)
@@ -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);
     }