From 829fbafb853be9c69ac37f18a3d23a5ba372c318 Mon Sep 17 00:00:00 2001 From: h_vogt Date: Wed, 28 Dec 2011 12:43:40 +0000 Subject: [PATCH] reduce memory leaks --- ChangeLog | 4 ++++ src/spicelib/analysis/cktdest.c | 18 ++++++++++++++++-- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index ae4a690f5..3a24b12c1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2011-12-28 Holger Vogt + * cktdest.c: reduce memory leaks for command 'reset' + bug no. 3229770 + 2011-12-27 Robert Larice * visualc/vngspice.vcproj , * visualc/include/config.h , diff --git a/src/spicelib/analysis/cktdest.c b/src/spicelib/analysis/cktdest.c index eb7e46dff..b356c6d89 100644 --- a/src/spicelib/analysis/cktdest.c +++ b/src/spicelib/analysis/cktdest.c @@ -43,13 +43,27 @@ CKTdestroy(CKTcircuit *ckt) for(i=0;i<=ckt->CKTmaxOrder+1;i++){ FREE(ckt->CKTstates[i]); } - if(ckt->CKTmatrix) SMPdestroy(ckt->CKTmatrix); - if(ckt->CKTbreaks) FREE(ckt->CKTbreaks); + if(ckt->CKTmatrix) { + SMPdestroy(ckt->CKTmatrix); + ckt->CKTmatrix = NULL; + } + FREE(ckt->CKTbreaks); for(node = ckt->CKTnodes; node; ) { nnode = node->next; FREE(node); node = nnode; } + + FREE(ckt->CKTrhs); + FREE(ckt->CKTrhsOld); + FREE(ckt->CKTrhsSpare); + FREE(ckt->CKTirhs); + FREE(ckt->CKTirhsOld); + FREE(ckt->CKTirhsSpare); + + FREE(ckt->CKTstat->STATdevNum); + FREE(ckt->CKTstat); + ckt->CKTnodes = NULL; ckt->CKTlastNode = NULL; FREE(ckt);