Browse Source

Plug memory leaks in transmission line LTRA

pre-master-46
Holger Vogt 5 years ago
parent
commit
5d39ff2d8c
  1. 3
      src/spicelib/devices/ltra/ltraext.h
  2. 4
      src/spicelib/devices/ltra/ltrainit.c
  3. 28
      src/spicelib/devices/ltra/ltraset.c

3
src/spicelib/devices/ltra/ltraext.h

@ -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 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 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 LTRAstraightLineCheck(double,double,double,double,double,double,double,double);
extern int LTRAdevDelete(GENinstance*);
extern int LTRAmDelete(GENmodel*);

4
src/spicelib/devices/ltra/ltrainit.c

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

28
src/spicelib/devices/ltra/ltraset.c

@ -240,3 +240,31 @@ LTRAunsetup(GENmodel *inModel, CKTcircuit *ckt)
} }
return OK; 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;
}
Loading…
Cancel
Save