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);