From 86af3872a910e314d20ef911fad1819ad90c1291 Mon Sep 17 00:00:00 2001 From: Paul Smith Date: Tue, 14 Feb 2006 15:42:17 +0000 Subject: Some memory leak cleanups (found with valgrind). --- implicit.c | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) (limited to 'implicit.c') diff --git a/implicit.c b/implicit.c index 7b34fba..d7c140a 100644 --- a/implicit.c +++ b/implicit.c @@ -77,24 +77,25 @@ struct idep }; static void -free_idep_chain (struct idep* p) +free_idep_chain (struct idep *p) { - register struct idep* n; - register struct file *f; + struct idep *n; + struct file *f; for (; p != 0; p = n) { n = p->next; if (p->name) - { - free (p->name); - - f = p->intermediate_file; + free (p->name); - if (f != 0 - && (f->stem < f->name - || f->stem > f->name + strlen (f->name))) + f = p->intermediate_file; + if (f != 0) + { + /* if (f->variables) + free_variable_set (f->variables); */ + if (f->stem < f->name + || f->stem > f->name + strlen (f->name)) free (f->stem); } @@ -742,6 +743,8 @@ pattern_search (struct file *file, int archive, /* If we have tried to find P as an intermediate file and failed, mark that name as impossible so we won't go through the search again later. */ + if (intermediate_file->variables) + free_variable_set (intermediate_file->variables); file_impossible (name); } -- cgit v1.2.3