Plug memory leaks in transmission line LTRA

This commit is contained in:
Holger Vogt 2021-05-19 17:25:01 +02:00
parent d2ac525f52
commit 5d39ff2d8c
3 changed files with 33 additions and 2 deletions

View File

@ -41,3 +41,6 @@ extern double LTRAh3dashCoeffSetup(double*,int,double,double,double,double*,int,
extern void LTRArcCoeffsSetup(double*,double*,double*,double*,double*,double*,int,double,double,double,double*,int,double);
extern void LTRArlcCoeffsSetup(double*,double*,double*,double*,double*,double*,int,double,double,double,double,double*,int,double,int*);
extern int LTRAstraightLineCheck(double,double,double,double,double,double,double,double);
extern int LTRAdevDelete(GENinstance*);
extern int LTRAmDelete(GENmodel*);

View File

@ -43,8 +43,8 @@ SPICEdev LTRAinfo = {
.DEVacLoad = LTRAacLoad,
.DEVaccept = LTRAaccept,
.DEVdestroy = NULL,
.DEVmodDelete = NULL,
.DEVdelete = NULL,
.DEVmodDelete = LTRAmDelete,
.DEVdelete = LTRAdevDelete,
.DEVsetic = NULL,
.DEVask = LTRAask,
.DEVmodAsk = LTRAmAsk,

View File

@ -240,3 +240,31 @@ LTRAunsetup(GENmodel *inModel, CKTcircuit *ckt)
}
return OK;
}
int
LTRAdevDelete(GENinstance* inst)
{
LTRAinstance* here = (LTRAinstance*)inst;
if (here->LTRAv1)
tfree(here->LTRAv1);
if (here->LTRAi1)
tfree(here->LTRAi1);
if (here->LTRAv2)
tfree(here->LTRAv2);
if (here->LTRAi2)
tfree(here->LTRAi2);
return OK;
}
int
LTRAmDelete(GENmodel* gen_model)
{
LTRAmodel* model = (LTRAmodel*)gen_model;
if (model->LTRAh1dashCoeffs)
tfree(model->LTRAh1dashCoeffs);
if (model->LTRAh2Coeffs)
tfree(model->LTRAh2Coeffs);
if (model->LTRAh3dashCoeffs)
tfree(model->LTRAh3dashCoeffs);
return OK;
}