diff options
author | Stefan Monnier <monnier@iro.umontreal.ca> | 2015-11-21 22:05:28 -0500 |
---|---|---|
committer | Stefan Monnier <monnier@iro.umontreal.ca> | 2015-11-21 22:05:28 -0500 |
commit | 702d76dbee8447f56d01009142983f09e7507d6f (patch) | |
tree | c4bb2e544ae9e87ff14f1254d64537b92868384b /src/syntax.h | |
parent | 8e84823f3f06714d0668060d62456cf7e3100e6c (diff) |
Unrevert most of regexp reentrancy abort patch
The problem was in:
* src/syntax.c (update_syntax_table_forward): Propertize even when truncated
which is hence not unreverted.
The rest is:
* src/syntax.h (UPDATE_SYNTAX_TABLE_FORWARD_FAST):
(UPDATE_SYNTAX_TABLE_FAST): Re-introduce.
All callers in regex.c changed back to the _FAST versions.
* test/automated/message-mode-tests.el: Tweak the test to rely on auto
propertization in backward-sexp.
Diffstat (limited to 'src/syntax.h')
-rw-r--r-- | src/syntax.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/syntax.h b/src/syntax.h index 06ce0ec55d..eb154e088c 100644 --- a/src/syntax.h +++ b/src/syntax.h @@ -186,6 +186,13 @@ UPDATE_SYNTAX_TABLE_FORWARD (ptrdiff_t charpos) false, gl_state.object); } +INLINE void +UPDATE_SYNTAX_TABLE_FORWARD_FAST (ptrdiff_t charpos) +{ + if (parse_sexp_lookup_properties && charpos >= gl_state.e_property) + update_syntax_table (charpos + gl_state.offset, 1, false, gl_state.object); +} + /* Make syntax table state (gl_state) good for CHARPOS, assuming it is currently good for a position after CHARPOS. */ @@ -205,6 +212,13 @@ UPDATE_SYNTAX_TABLE (ptrdiff_t charpos) UPDATE_SYNTAX_TABLE_FORWARD (charpos); } +INLINE void +UPDATE_SYNTAX_TABLE_FAST (ptrdiff_t charpos) +{ + UPDATE_SYNTAX_TABLE_BACKWARD (charpos); + UPDATE_SYNTAX_TABLE_FORWARD_FAST (charpos); +} + /* Set up the buffer-global syntax table. */ INLINE void |