Mercurial > emacs
changeset 72945:d4ecc69b8d2e
* search.c (clear_regexp_cache): New function.
* syntax.c (Fmodify_syntax_entry): Clear regexp cache.
author | Chong Yidong <cyd@stupidchicken.com> |
---|---|
date | Sun, 17 Sep 2006 17:38:59 +0000 |
parents | 65c16038d6c9 |
children | 7bdeeb04897d |
files | src/ChangeLog src/search.c src/syntax.c |
diffstat | 3 files changed, 24 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/ChangeLog Sun Sep 17 15:31:54 2006 +0000 +++ b/src/ChangeLog Sun Sep 17 17:38:59 2006 +0000 @@ -1,3 +1,9 @@ +2006-09-17 Chong Yidong <cyd@stupidchicken.com> + + * search.c (clear_regexp_cache): New function. + + * syntax.c (Fmodify_syntax_entry): Clear regexp cache. + 2006-09-16 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> * gtkutil.c (xg_get_file_with_chooser): Check
--- a/src/search.c Sun Sep 17 15:31:54 2006 +0000 +++ b/src/search.c Sun Sep 17 17:38:59 2006 +0000 @@ -207,6 +207,19 @@ } } +/* Clear the regexp cache. + There is no danger of memory leak here because re_compile_pattern + automagically manages the memory in each re_pattern_buffer struct, + based on its `allocated' and `buffer' values. */ +void +clear_regexp_cache () +{ + int i; + + for (i = 0; i < REGEXP_CACHE_SIZE; ++i) + searchbufs[i].regexp = Qnil; +} + /* Compile a regexp if necessary, but first check to see if there's one in the cache. PATTERN is the pattern to compile.
--- a/src/syntax.c Sun Sep 17 15:31:54 2006 +0000 +++ b/src/syntax.c Sun Sep 17 17:38:59 2006 +0000 @@ -1039,6 +1039,11 @@ check_syntax_table (syntax_table); SET_RAW_SYNTAX_ENTRY (syntax_table, XINT (c), Fstring_to_syntax (newentry)); + + /* We clear the regexp cache, since character classes can now have + different values from those in the compiled regexps.*/ + clear_regexp_cache (); + return Qnil; }