com_measure.c, measure.c: remove memory leaks
This commit is contained in:
parent
12e19d140b
commit
8f44839f3e
|
|
@ -236,6 +236,8 @@ measure_function_type(char *operation)
|
|||
else
|
||||
mFunctionType = AT_UNKNOWN;
|
||||
|
||||
tfree(mFunction);
|
||||
|
||||
return (mFunctionType);
|
||||
}
|
||||
|
||||
|
|
@ -1479,6 +1481,7 @@ get_measure2(
|
|||
ANALYSIS_TYPE_T mFunctionType = AT_UNKNOWN;
|
||||
int wl_cnt;
|
||||
char *p;
|
||||
int ret_val = MEASUREMENT_FAILURE;
|
||||
|
||||
*result = 0.0e0; /* default result */
|
||||
|
||||
|
|
@ -1586,14 +1589,14 @@ get_measure2(
|
|||
|
||||
if (measure_parse_trigtarg(measTrig, words , wlTarg, "trig", errbuf) == 0) {
|
||||
measure_errMessage(mName, mFunction, "TRIG", errbuf, autocheck);
|
||||
return MEASUREMENT_FAILURE;
|
||||
goto err_ret1;
|
||||
}
|
||||
|
||||
if ((measTrig->m_rise == -1) && (measTrig->m_fall == -1) &&
|
||||
(measTrig->m_cross == -1) && (measTrig->m_at == 1e99)) {
|
||||
sprintf(errbuf, "at, rise, fall or cross must be given\n");
|
||||
measure_errMessage(mName, mFunction, "TRIG", errbuf, autocheck);
|
||||
return MEASUREMENT_FAILURE;
|
||||
goto err_ret1;
|
||||
}
|
||||
|
||||
while (words != wlTarg)
|
||||
|
|
@ -1604,14 +1607,14 @@ get_measure2(
|
|||
|
||||
if (measure_parse_trigtarg(measTarg, words , NULL, "targ", errbuf) == 0) {
|
||||
measure_errMessage(mName, mFunction, "TARG", errbuf, autocheck);
|
||||
return MEASUREMENT_FAILURE;
|
||||
goto err_ret1;
|
||||
}
|
||||
|
||||
if ((measTarg->m_rise == -1) && (measTarg->m_fall == -1) &&
|
||||
(measTarg->m_cross == -1)&& (measTarg->m_at == 1e99)) {
|
||||
sprintf(errbuf, "at, rise, fall or cross must be given\n");
|
||||
measure_errMessage(mName, mFunction, "TARG", errbuf, autocheck);
|
||||
return MEASUREMENT_FAILURE;
|
||||
goto err_ret1;
|
||||
}
|
||||
|
||||
// measure trig
|
||||
|
|
@ -1624,7 +1627,7 @@ get_measure2(
|
|||
if (isnan(measTrig->m_measured)) {
|
||||
sprintf(errbuf, "out of interval\n");
|
||||
measure_errMessage(mName, mFunction, "TRIG", errbuf, autocheck);
|
||||
return MEASUREMENT_FAILURE;
|
||||
goto err_ret1;
|
||||
}
|
||||
// measure targ
|
||||
com_measure_when(measTarg);
|
||||
|
|
@ -1632,7 +1635,7 @@ get_measure2(
|
|||
if (isnan(measTarg->m_measured)) {
|
||||
sprintf(errbuf, "out of interval\n");
|
||||
measure_errMessage(mName, mFunction, "TARG", errbuf, autocheck);
|
||||
return MEASUREMENT_FAILURE;
|
||||
goto err_ret1;
|
||||
}
|
||||
|
||||
// print results
|
||||
|
|
@ -1642,7 +1645,18 @@ get_measure2(
|
|||
printf("%-20s= %e targ= %e trig= %e\n", mName, (measTarg->m_measured - measTrig->m_measured), measTarg->m_measured, measTrig->m_measured);
|
||||
|
||||
*result = (measTarg->m_measured - measTrig->m_measured);
|
||||
return MEASUREMENT_OK;
|
||||
|
||||
ret_val = MEASUREMENT_OK;
|
||||
|
||||
err_ret1:
|
||||
tfree(mAnalysis);
|
||||
tfree(mName);
|
||||
tfree(measTarg->m_vec);
|
||||
tfree(measTarg);
|
||||
tfree(measTrig->m_vec);
|
||||
tfree(measTrig);
|
||||
|
||||
return ret_val;
|
||||
}
|
||||
case AT_FIND:
|
||||
{
|
||||
|
|
@ -1654,7 +1668,7 @@ get_measure2(
|
|||
|
||||
if (measure_parse_find(meas, words, wlWhen, errbuf) == 0) {
|
||||
measure_errMessage(mName, mFunction, "FIND", errbuf, autocheck);
|
||||
return MEASUREMENT_FAILURE;
|
||||
goto err_ret2;
|
||||
}
|
||||
|
||||
if (meas->m_at == 1e99) {
|
||||
|
|
@ -1667,7 +1681,7 @@ get_measure2(
|
|||
|
||||
if (measure_parse_when(measFind, words, errbuf) == 0) {
|
||||
measure_errMessage(mName, mFunction, "WHEN", errbuf, autocheck);
|
||||
return MEASUREMENT_FAILURE;
|
||||
goto err_ret2;
|
||||
}
|
||||
|
||||
com_measure_when(measFind);
|
||||
|
|
@ -1675,7 +1689,7 @@ get_measure2(
|
|||
if (isnan(measFind->m_measured)) {
|
||||
sprintf(errbuf, "out of interval\n");
|
||||
measure_errMessage(mName, mFunction, "AT", errbuf, autocheck);
|
||||
return MEASUREMENT_FAILURE;
|
||||
goto err_ret2;
|
||||
}
|
||||
|
||||
measure_at(meas, measFind->m_measured);
|
||||
|
|
@ -1688,7 +1702,7 @@ get_measure2(
|
|||
if (isnan(meas->m_measured)) {
|
||||
sprintf(errbuf, "out of interval\n");
|
||||
measure_errMessage(mName, mFunction, "AT", errbuf, autocheck);
|
||||
return MEASUREMENT_FAILURE;
|
||||
goto err_ret2;
|
||||
}
|
||||
|
||||
// print results
|
||||
|
|
@ -1698,7 +1712,18 @@ get_measure2(
|
|||
printf("%-20s= %e\n", mName, meas->m_measured);
|
||||
|
||||
*result = meas->m_measured;
|
||||
return MEASUREMENT_OK;
|
||||
|
||||
ret_val = MEASUREMENT_OK;
|
||||
|
||||
err_ret2:
|
||||
tfree(mAnalysis);
|
||||
tfree(mName);
|
||||
tfree(meas->m_vec);
|
||||
tfree(meas);
|
||||
tfree(measFind->m_vec);
|
||||
tfree(measFind);
|
||||
|
||||
return ret_val;
|
||||
}
|
||||
case AT_WHEN:
|
||||
{
|
||||
|
|
@ -1707,7 +1732,7 @@ get_measure2(
|
|||
meas->m_analysis = mAnalysis;
|
||||
if (measure_parse_when(meas, words, errbuf) == 0) {
|
||||
measure_errMessage(mName, mFunction, "WHEN", errbuf, autocheck);
|
||||
return MEASUREMENT_FAILURE;
|
||||
goto err_ret3;
|
||||
}
|
||||
|
||||
com_measure_when(meas);
|
||||
|
|
@ -1715,7 +1740,7 @@ get_measure2(
|
|||
if (isnan(meas->m_measured)) {
|
||||
sprintf(errbuf, "out of interval\n");
|
||||
measure_errMessage(mName, mFunction, "WHEN", errbuf, autocheck);
|
||||
return MEASUREMENT_FAILURE;
|
||||
goto err_ret3;
|
||||
}
|
||||
|
||||
// print results
|
||||
|
|
@ -1725,7 +1750,16 @@ get_measure2(
|
|||
printf("%-20s= %e\n", mName, meas->m_measured);
|
||||
|
||||
*result = meas->m_measured;
|
||||
return MEASUREMENT_OK;
|
||||
|
||||
ret_val = MEASUREMENT_OK;
|
||||
|
||||
err_ret3:
|
||||
tfree(mAnalysis);
|
||||
tfree(mName);
|
||||
tfree(meas->m_vec);
|
||||
tfree(meas);
|
||||
|
||||
return ret_val;
|
||||
}
|
||||
case AT_RMS:
|
||||
case AT_INTEG:
|
||||
|
|
@ -1736,7 +1770,7 @@ get_measure2(
|
|||
meas->m_analysis = mAnalysis;
|
||||
if (measure_parse_trigtarg(meas, words , NULL, "trig", errbuf) == 0) {
|
||||
measure_errMessage(mName, mFunction, "TRIG", errbuf, autocheck);
|
||||
return MEASUREMENT_FAILURE;
|
||||
goto err_ret4;
|
||||
}
|
||||
|
||||
// measure
|
||||
|
|
@ -1745,7 +1779,7 @@ get_measure2(
|
|||
if (isnan(meas->m_measured)) {
|
||||
sprintf(errbuf, "out of interval\n");
|
||||
measure_errMessage(mName, mFunction, "TRIG", errbuf, autocheck); // ??
|
||||
return MEASUREMENT_FAILURE;
|
||||
goto err_ret4;
|
||||
}
|
||||
|
||||
if (meas->m_at == 1e99)
|
||||
|
|
@ -1758,7 +1792,16 @@ get_measure2(
|
|||
printf("%-20s= %.*e from= %.*e to= %.*e\n", mName, precision, meas->m_measured, precision, meas->m_from, precision, meas->m_to);
|
||||
|
||||
*result = meas->m_measured;
|
||||
return MEASUREMENT_OK;
|
||||
|
||||
ret_val = MEASUREMENT_OK;
|
||||
|
||||
err_ret4:
|
||||
tfree(mAnalysis);
|
||||
tfree(mName);
|
||||
tfree(meas->m_vec);
|
||||
tfree(meas);
|
||||
|
||||
return ret_val;
|
||||
|
||||
}
|
||||
case AT_AVG:
|
||||
|
|
@ -1771,7 +1814,7 @@ get_measure2(
|
|||
|
||||
if (measure_parse_trigtarg(meas, words , NULL, "trig", errbuf) == 0) {
|
||||
measure_errMessage(mName, mFunction, "TRIG", errbuf, autocheck);
|
||||
return MEASUREMENT_FAILURE;
|
||||
goto err_ret5;
|
||||
}
|
||||
|
||||
// measure
|
||||
|
|
@ -1779,7 +1822,7 @@ get_measure2(
|
|||
if (isnan(meas->m_measured)) {
|
||||
sprintf(errbuf, "out of interval\n");
|
||||
measure_errMessage(mName, mFunction, "TRIG", errbuf, autocheck); // ??
|
||||
return MEASUREMENT_FAILURE;
|
||||
goto err_ret5;
|
||||
}
|
||||
|
||||
if (meas->m_at == 1e99)
|
||||
|
|
@ -1792,8 +1835,16 @@ get_measure2(
|
|||
printf("%-20s= %e from= %e to= %e\n", mName, meas->m_measured, meas->m_at, meas->m_measured_at);
|
||||
|
||||
*result = meas->m_measured;
|
||||
return MEASUREMENT_OK;
|
||||
|
||||
ret_val = MEASUREMENT_OK;
|
||||
|
||||
err_ret5:
|
||||
tfree(mAnalysis);
|
||||
tfree(mName);
|
||||
tfree(meas->m_vec);
|
||||
tfree(meas);
|
||||
|
||||
return ret_val;
|
||||
}
|
||||
case AT_MIN:
|
||||
case AT_MAX:
|
||||
|
|
@ -1806,7 +1857,7 @@ get_measure2(
|
|||
measTrig->m_analysis = mAnalysis;
|
||||
if (measure_parse_trigtarg(measTrig, words , NULL, "trig", errbuf) == 0) {
|
||||
measure_errMessage(mName, mFunction, "TRIG", errbuf, autocheck);
|
||||
return MEASUREMENT_FAILURE;
|
||||
goto err_ret6;
|
||||
}
|
||||
|
||||
// measure
|
||||
|
|
@ -1818,7 +1869,7 @@ get_measure2(
|
|||
if (isnan(measTrig->m_measured)) {
|
||||
sprintf(errbuf, "out of interval\n");
|
||||
measure_errMessage(mName, mFunction, "TRIG", errbuf, autocheck); // ??
|
||||
return MEASUREMENT_FAILURE;
|
||||
goto err_ret6;
|
||||
}
|
||||
|
||||
if ((mFunctionType == AT_MIN) || (mFunctionType == AT_MAX)) {
|
||||
|
|
@ -1838,7 +1889,16 @@ get_measure2(
|
|||
|
||||
*result = measTrig->m_measured_at;
|
||||
}
|
||||
return MEASUREMENT_OK;
|
||||
|
||||
ret_val = MEASUREMENT_OK;
|
||||
|
||||
err_ret6:
|
||||
tfree(mAnalysis);
|
||||
tfree(mName);
|
||||
tfree(measTrig->m_vec);
|
||||
tfree(measTrig);
|
||||
|
||||
return ret_val;
|
||||
}
|
||||
case AT_PP:
|
||||
{
|
||||
|
|
@ -1848,7 +1908,7 @@ get_measure2(
|
|||
measTrig->m_analysis = mAnalysis;
|
||||
if (measure_parse_trigtarg(measTrig, words , NULL, "trig", errbuf) == 0) {
|
||||
measure_errMessage(mName, mFunction, "TRIG", errbuf, autocheck);
|
||||
return MEASUREMENT_FAILURE;
|
||||
goto err_ret7;
|
||||
}
|
||||
|
||||
// measure min
|
||||
|
|
@ -1856,7 +1916,7 @@ get_measure2(
|
|||
if (isnan(measTrig->m_measured)) {
|
||||
sprintf(errbuf, "out of interval\n");
|
||||
measure_errMessage(mName, mFunction, "TRIG", errbuf, autocheck); // ??
|
||||
return MEASUREMENT_FAILURE;
|
||||
goto err_ret7;
|
||||
}
|
||||
minValue = measTrig->m_measured;
|
||||
|
||||
|
|
@ -1865,7 +1925,7 @@ get_measure2(
|
|||
if (isnan(measTrig->m_measured)) {
|
||||
sprintf(errbuf, "out of interval\n");
|
||||
measure_errMessage(mName, mFunction, "TRIG", errbuf, autocheck); // ??
|
||||
return MEASUREMENT_FAILURE;
|
||||
goto err_ret7;
|
||||
}
|
||||
maxValue = measTrig->m_measured;
|
||||
|
||||
|
|
@ -1876,7 +1936,16 @@ get_measure2(
|
|||
printf("%-20s= %e from= %e to= %e\n", mName, (maxValue - minValue), measTrig->m_from, measTrig->m_to);
|
||||
|
||||
*result = (maxValue - minValue);
|
||||
return MEASUREMENT_OK;
|
||||
|
||||
ret_val = MEASUREMENT_OK;
|
||||
|
||||
err_ret7:
|
||||
tfree(mAnalysis);
|
||||
tfree(mName);
|
||||
tfree(measTrig->m_vec);
|
||||
tfree(measTrig);
|
||||
|
||||
return ret_val;
|
||||
}
|
||||
|
||||
case AT_DERIV:
|
||||
|
|
|
|||
|
|
@ -137,7 +137,7 @@ com_meas(wordlist *wl)
|
|||
wl_let = wl_cons(copy(newvec), NULL);
|
||||
com_let(wl_let);
|
||||
wl_free(wl_let);
|
||||
// fprintf(stdout, "in: %s\n", line_in);
|
||||
tfree(line_in);
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -315,6 +315,7 @@ do_measure(
|
|||
txfree(an_type);
|
||||
txfree(resname);
|
||||
txfree(meastype);
|
||||
wl_free(measure_word_list);
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
|
|
@ -346,9 +347,10 @@ do_measure(
|
|||
|
||||
} /* end of for loop (first pass through .meas lines) */
|
||||
|
||||
if (chk_only)
|
||||
return (measures_passed);
|
||||
|
||||
if (chk_only) {
|
||||
tfree(an_name);
|
||||
return (measures_passed);
|
||||
}
|
||||
/* second pass through .meas cards: now do param|expr .meas statements */
|
||||
newcard = meas_results;
|
||||
for (meas_card = ft_curckt->ci_meas; meas_card != NULL; meas_card = meas_card->li_next) {
|
||||
|
|
@ -461,7 +463,7 @@ measure_parse_line(char *line)
|
|||
char *extra_item; /* extra item */
|
||||
|
||||
wl = NULL;
|
||||
(void) gettok(&line);
|
||||
txfree(gettok(&line));
|
||||
do {
|
||||
item = gettok(&line);
|
||||
if (!(item))
|
||||
|
|
|
|||
Loading…
Reference in New Issue