From 0f25c25c7e89516702b2137f5379542a926b3bf5 Mon Sep 17 00:00:00 2001 From: Holger Vogt Date: Mon, 5 Jul 2021 19:42:14 +0200 Subject: [PATCH] Remove a memory leak Make inp_rem_levels non-static and use it to remove 'root' after it has been used. --- src/frontend/inp.c | 2 ++ src/frontend/inpcom.c | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/frontend/inp.c b/src/frontend/inp.c index 7ee5c361c..d411fee6c 100644 --- a/src/frontend/inp.c +++ b/src/frontend/inp.c @@ -78,6 +78,7 @@ extern bool ft_batchmode; /* from inpcom.c */ extern struct nscope* inp_add_levels(struct card *deck); +extern void inp_rem_levels(struct nscope* root); extern void comment_out_unused_subckt_models(struct card *deck); extern void inp_rem_unused_models(struct nscope *root, struct card *deck); @@ -2409,6 +2410,7 @@ static void rem_unused_mos_models(struct card* deck) { struct nscope* root = inp_add_levels(deck); comment_out_unused_subckt_models(deck); inp_rem_unused_models(root, deck); + inp_rem_levels(root); /* remove unused binning models */ for (tmpc = deck; tmpc; tmppc = tmpc, tmpc = tmpc->nextcard) { char* curr_line; diff --git a/src/frontend/inpcom.c b/src/frontend/inpcom.c index 6ab077987..b1e194e4b 100644 --- a/src/frontend/inpcom.c +++ b/src/frontend/inpcom.c @@ -169,7 +169,7 @@ static char *search_plain_identifier(char *str, const char *identifier); struct nscope *inp_add_levels(struct card *deck); static struct card_assoc *find_subckt(struct nscope *scope, const char *name); -static void inp_rem_levels(struct nscope *root); +void inp_rem_levels(struct nscope *root); void inp_rem_unused_models(struct nscope *root, struct card *deck); static struct modellist *inp_find_model( struct nscope *scope, const char *name); @@ -9388,7 +9388,7 @@ struct nscope *inp_add_levels(struct card *deck) } /* remove the level and subckts entries */ -static void inp_rem_levels(struct nscope *root) +void inp_rem_levels(struct nscope *root) { struct card_assoc *p = root->subckts; while (p) {