fix garbage collection of vectors returned by ft_evaluate()
This commit is contained in:
parent
9652cc46c8
commit
059f2b6c0d
|
|
@ -108,7 +108,7 @@ com_let(wordlist *wl)
|
||||||
indices[numdims++] = j;
|
indices[numdims++] = j;
|
||||||
|
|
||||||
/* va: garbage collection for t, if pnode `names' is no simple value */
|
/* va: garbage collection for t, if pnode `names' is no simple value */
|
||||||
if (names != NULL && names->pn_value == NULL && t != NULL)
|
if (names && !names->pn_value && t)
|
||||||
vec_free(t);
|
vec_free(t);
|
||||||
free_pnode(names); /* frees also t, if pnode `names' is simple value */
|
free_pnode(names); /* frees also t, if pnode `names' is simple value */
|
||||||
|
|
||||||
|
|
@ -235,7 +235,7 @@ com_let(wordlist *wl)
|
||||||
|
|
||||||
quit:
|
quit:
|
||||||
/* va: garbage collection for t, if pnode `names' is no simple value */
|
/* va: garbage collection for t, if pnode `names' is no simple value */
|
||||||
if (names != NULL && names->pn_value == NULL && t != NULL)
|
if (names && !names->pn_value && t)
|
||||||
vec_free(t);
|
vec_free(t);
|
||||||
free_pnode(names); /* frees also t, if pnode `names' is simple value */
|
free_pnode(names); /* frees also t, if pnode `names' is simple value */
|
||||||
tfree(p);
|
tfree(p);
|
||||||
|
|
|
||||||
|
|
@ -317,7 +317,7 @@ cp_istrue(wordlist *wl)
|
||||||
rv = !vec_iszero(v);
|
rv = !vec_iszero(v);
|
||||||
|
|
||||||
/* va: garbage collection for v, if pnode names is no simple value */
|
/* va: garbage collection for v, if pnode names is no simple value */
|
||||||
if (names->pn_value == NULL && v != NULL)
|
if (names && !names->pn_value && v)
|
||||||
vec_free(v);
|
vec_free(v);
|
||||||
free_pnode(names); /* free also v, if pnode names is simple value */
|
free_pnode(names); /* free also v, if pnode names is simple value */
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1350,11 +1350,10 @@ com_alter_common(wordlist *wl, int do_model)
|
||||||
|
|
||||||
if_setparam(ft_curckt->ci_ckt, &dev, param, dv, do_model);
|
if_setparam(ft_curckt->ci_ckt, &dev, param, dv, do_model);
|
||||||
|
|
||||||
/* va: garbage collection for dv, if pnode names is no simple value */
|
|
||||||
if (names->pn_value == NULL && dv != NULL)
|
|
||||||
vec_free(dv);
|
|
||||||
|
|
||||||
done:
|
done:
|
||||||
|
/* va: garbage collection for dv, if pnode names is no simple value */
|
||||||
|
if (names && !names->pn_value && dv)
|
||||||
|
vec_free(dv);
|
||||||
free_pnode(names); /* free also dv, if pnode names is simple value */
|
free_pnode(names); /* free also dv, if pnode names is simple value */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue