Browse Source

Remove a memory leak

Make inp_rem_levels non-static
and use it to remove 'root' after it has been used.
pre-master-46
Holger Vogt 5 years ago
parent
commit
0f25c25c7e
  1. 2
      src/frontend/inp.c
  2. 4
      src/frontend/inpcom.c

2
src/frontend/inp.c

@ -78,6 +78,7 @@ extern bool ft_batchmode;
/* from inpcom.c */ /* from inpcom.c */
extern struct nscope* inp_add_levels(struct card *deck); 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 comment_out_unused_subckt_models(struct card *deck);
extern void inp_rem_unused_models(struct nscope *root, 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); struct nscope* root = inp_add_levels(deck);
comment_out_unused_subckt_models(deck); comment_out_unused_subckt_models(deck);
inp_rem_unused_models(root, deck); inp_rem_unused_models(root, deck);
inp_rem_levels(root);
/* remove unused binning models */ /* remove unused binning models */
for (tmpc = deck; tmpc; tmppc = tmpc, tmpc = tmpc->nextcard) { for (tmpc = deck; tmpc; tmppc = tmpc, tmpc = tmpc->nextcard) {
char* curr_line; char* curr_line;

4
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); struct nscope *inp_add_levels(struct card *deck);
static struct card_assoc *find_subckt(struct nscope *scope, const char *name); 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); void inp_rem_unused_models(struct nscope *root, struct card *deck);
static struct modellist *inp_find_model( static struct modellist *inp_find_model(
struct nscope *scope, const char *name); struct nscope *scope, const char *name);
@ -9388,7 +9388,7 @@ struct nscope *inp_add_levels(struct card *deck)
} }
/* remove the level and subckts entries */ /* 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; struct card_assoc *p = root->subckts;
while (p) { while (p) {

Loading…
Cancel
Save