Plug a memory leak in transmission line cpl

This commit is contained in:
Holger Vogt 2021-05-19 08:31:03 +02:00
parent bb47e95f7f
commit 54458ba172
3 changed files with 20 additions and 1 deletions

View File

@ -11,3 +11,4 @@ extern int CPLmParam(int,IFvalue*, GENmodel*);
extern int CPLparam(int,IFvalue*, GENinstance*, IFvalue*);
extern int CPLsetup(SMPmatrix*, GENmodel*, CKTcircuit*, int*);
extern int CPLunsetup(GENmodel*, CKTcircuit*);
extern int CPLdevDelete(GENinstance*);

View File

@ -44,7 +44,7 @@ SPICEdev CPLinfo = {
.DEVaccept = NULL,
.DEVdestroy = NULL,
.DEVmodDelete = NULL,
.DEVdelete = NULL,
.DEVdelete = CPLdevDelete,
.DEVsetic = NULL,
.DEVask = CPLask,
.DEVmodAsk = CPLmAsk,

View File

@ -2146,3 +2146,21 @@ static int rotate(int dim_in, int p, int q)
}
int
CPLdevDelete(GENinstance* inst)
{
VI_list* tmplist, * prevlist;
CPLinstance* here = (CPLinstance*)inst;
if (here->cplines2)
tfree(here->cplines2);
if (here->cplines) {
prevlist = tmplist = here->cplines->vi_head;
while (tmplist) {
tmplist = tmplist->next;
tfree(prevlist);
prevlist = tmplist;
}
tfree(here->cplines);
}
return OK;
}