summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2019-03-27 20:58:34 -0700
committerPaul Eggert <eggert@cs.ucla.edu>2019-03-27 21:24:25 -0700
commit361e88986f3580a7433a23eec1cf01408e5e3627 (patch)
treee93e6a8c2bf790f5c6d88679a434a55d725160fe
parent4da44cdaaf792c96164ba60076866a9df4d76002 (diff)
downloademacs-361e88986f3580a7433a23eec1cf01408e5e3627.tar.gz
Fix search_regs memory leak when thread destroyed
* src/thread.c (free_search_regs): New function. (finalize_one_thread): Use it.
-rw-r--r--src/thread.c12
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);
}