From edc690e26f0a46b98be6f8760fba78aa675b11a7 Mon Sep 17 00:00:00 2001 From: Holger Vogt Date: Tue, 21 Nov 2017 10:16:31 +0100 Subject: [PATCH] frontend/outitf.c, plug a memory leak when `.option interp' --- src/frontend/outitf.c | 25 +++++++++---------------- 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/src/frontend/outitf.c b/src/frontend/outitf.c index 4bf273921..ad577e936 100644 --- a/src/frontend/outitf.c +++ b/src/frontend/outitf.c @@ -722,21 +722,17 @@ OUTwEnd(runDesc *plotPtr) int OUTendPlot(runDesc *plotPtr) { - runDesc *run = plotPtr; // FIXME - - if (interpolated && run->circuit->CKTcurJob->JOBtype == 4 && run->writeOut) { - tfree(valueold); - tfree(valuenew); - fileEnd(run); - } - else if (run->writeOut) { - fileEnd(run); + if (plotPtr->writeOut) { + fileEnd(plotPtr); } else { gr_end_iplot(); - plotEnd(run); + plotEnd(plotPtr); } - freeRun(run); + tfree(valueold); + tfree(valuenew); + + freeRun(plotPtr); return (OK); } @@ -933,7 +929,7 @@ fileInit_pass2(runDesc *run) rowbuflen *= 2; rowbuf = TMALLOC(double, rowbuflen); } else { - // fIXME rowbuflen = 0; + rowbuflen = 0; rowbuf = NULL; } } @@ -1004,10 +1000,7 @@ fileEnd(runDesc *run) fflush(run->fp); - if (run->binary) { - /* deallocate row buffer */ - tfree(rowbuf); - } + tfree(rowbuf); }