diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2019-03-27 20:58:34 -0700 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2019-03-27 21:24:25 -0700 |
commit | 361e88986f3580a7433a23eec1cf01408e5e3627 (patch) | |
tree | e93e6a8c2bf790f5c6d88679a434a55d725160fe /src | |
parent | 4da44cdaaf792c96164ba60076866a9df4d76002 (diff) | |
download | emacs-361e88986f3580a7433a23eec1cf01408e5e3627.tar.gz emacs-361e88986f3580a7433a23eec1cf01408e5e3627.tar.bz2 emacs-361e88986f3580a7433a23eec1cf01408e5e3627.zip |
Fix search_regs memory leak when thread destroyed
* src/thread.c (free_search_regs): New function.
(finalize_one_thread): Use it.
Diffstat (limited to 'src')
-rw-r--r-- | src/thread.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/thread.c b/src/thread.c index 59e5b6617e3..e51d6144347 100644 --- a/src/thread.c +++ b/src/thread.c @@ -768,9 +768,21 @@ run_thread (void *state) return NULL; } +static void +free_search_regs (struct re_registers *regs) +{ + if (regs->num_regs != 0) + { + xfree (regs->start); + xfree (regs->end); + } +} + void finalize_one_thread (struct thread_state *state) { + free_search_regs (&state->m_search_regs); + free_search_regs (&state->m_saved_search_regs); sys_cond_destroy (&state->thread_condvar); } |