diff options
author | Richard M. Stallman <rms@gnu.org> | 1998-05-24 23:24:25 +0000 |
---|---|---|
committer | Richard M. Stallman <rms@gnu.org> | 1998-05-24 23:24:25 +0000 |
commit | 6efc788795e564750837da362acf9326febc1ff1 (patch) | |
tree | 95d6cd8baa2e8207dc79e4feb82c98a64affdb5a /src/search.c | |
parent | eec7b73dba4ce7bbddf175f65966c5bb1e572fce (diff) | |
download | emacs-6efc788795e564750837da362acf9326febc1ff1.tar.gz |
(shrink_regexp_cache): New function.
Diffstat (limited to 'src/search.c')
-rw-r--r-- | src/search.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/search.c b/src/search.c index 175ae8a3f65..d9d445afad0 100644 --- a/src/search.c +++ b/src/search.c @@ -182,6 +182,23 @@ compile_pattern_1 (cp, pattern, translate, regp, posix, multibyte) cp->regexp = Fcopy_sequence (pattern); } +/* Shrink each compiled regexp buffer in the cache + to the size actually used right now. + This is called from garbage collection. */ + +void +shrink_regexp_cache () +{ + struct regexp_cache *cp, **cpp; + + for (cp = searchbuf_head; cp != 0; cp = cp->next) + { + cp->buf.allocated = cp->buf.used; + cp->buf.buffer + = (unsigned char *) realloc (cp->buf.buffer, cp->buf.used); + } +} + /* Compile a regexp if necessary, but first check to see if there's one in the cache. PATTERN is the pattern to compile. |