[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
emacs-27 d5ec18c: * src/regex-emacs.c (re_match_2_internal): Rework comm
From: |
Stefan Monnier |
Subject: |
emacs-27 d5ec18c: * src/regex-emacs.c (re_match_2_internal): Rework comment in last change |
Date: |
Sat, 18 Apr 2020 23:01:48 -0400 (EDT) |
branch: emacs-27
commit d5ec18c66bdefb492826eab0d60e818d5bac7238
Author: Stefan Monnier <address@hidden>
Commit: Stefan Monnier <address@hidden>
* 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.
---
src/regex-emacs.c | 8 +++++---
src/syntax.c | 4 ++--
2 files changed, 7 insertions(+), 5 deletions(-)
diff --git a/src/regex-emacs.c b/src/regex-emacs.c
index f456b49..5e23fc9 100644
--- a/src/regex-emacs.c
+++ b/src/regex-emacs.c
@@ -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);
diff --git a/src/syntax.c b/src/syntax.c
index e24b98d..a79ab86 100644
--- a/src/syntax.c
+++ b/src/syntax.c
@@ -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);
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- emacs-27 d5ec18c: * src/regex-emacs.c (re_match_2_internal): Rework comment in last change,
Stefan Monnier <=