Fix memory leak in xspice oneshot.
This commit is contained in:
parent
c9bd5bebbf
commit
4cf4b70c67
|
|
@ -92,10 +92,12 @@ oneshot_callback(ARGS, Mif_Callback_Reason_t reason)
|
||||||
switch (reason) {
|
switch (reason) {
|
||||||
case MIF_CB_DESTROY: {
|
case MIF_CB_DESTROY: {
|
||||||
Local_Data_t *loc = STATIC_VAR (locdata);
|
Local_Data_t *loc = STATIC_VAR (locdata);
|
||||||
if (loc) {
|
if (loc) {
|
||||||
|
if (loc->control) free(loc->control);
|
||||||
|
if (loc->pw) free(loc->pw);
|
||||||
free(loc);
|
free(loc);
|
||||||
STATIC_VAR (locdata) = NULL;
|
STATIC_VAR (locdata) = loc = NULL;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -268,7 +270,7 @@ void cm_oneshot(ARGS) /* structure holding parms,
|
||||||
/*** allocate static storage for *loc ***/
|
/*** allocate static storage for *loc ***/
|
||||||
STATIC_VAR (locdata) = calloc (1 , sizeof ( Local_Data_t ));
|
STATIC_VAR (locdata) = calloc (1 , sizeof ( Local_Data_t ));
|
||||||
loc = STATIC_VAR (locdata);
|
loc = STATIC_VAR (locdata);
|
||||||
CALLBACK = oneshot_callback;
|
CALLBACK = oneshot_callback;
|
||||||
|
|
||||||
/* Allocate storage for breakpoint domain & pulse width values */
|
/* Allocate storage for breakpoint domain & pulse width values */
|
||||||
x = loc->control = (double *) calloc((size_t) cntl_size, sizeof(double));
|
x = loc->control = (double *) calloc((size_t) cntl_size, sizeof(double));
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue