struct variable, #17/18, clean
This commit is contained in:
parent
af81e6810e
commit
a6cd5eea45
|
|
@ -52,18 +52,13 @@ ft_getstat(struct circ *ci, char *name)
|
|||
static struct variable *
|
||||
getFTEstat(struct FTEparm *p, FTESTATistics *stat, struct variable *next)
|
||||
{
|
||||
struct variable *v;
|
||||
|
||||
switch (p->id) {
|
||||
case FTEOPT_NLDECK:
|
||||
v = var_alloc_num(copy(p->description), stat->FTESTATdeckNumLines, next);
|
||||
return v;
|
||||
return var_alloc_num(copy(p->description), stat->FTESTATdeckNumLines, next);
|
||||
case FTEOPT_NLT:
|
||||
v = var_alloc_real(copy(p->description), stat->FTESTATnetLoadTime, next);
|
||||
return v;
|
||||
return var_alloc_real(copy(p->description), stat->FTESTATnetLoadTime, next);
|
||||
case FTEOPT_NPT:
|
||||
v = var_alloc_real(copy(p->description), stat->FTESTATnetParseTime, next);
|
||||
return v;
|
||||
return var_alloc_real(copy(p->description), stat->FTESTATnetParseTime, next);
|
||||
default:
|
||||
return NULL;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -48,11 +48,15 @@ cp_enqvar(char *word)
|
|||
if (!d)
|
||||
return (NULL);
|
||||
|
||||
if (d->v_link2)
|
||||
fprintf(cp_err,
|
||||
"Warning: only one vector may be accessed with the $& notation.\n");
|
||||
|
||||
if (d->v_length == 1) {
|
||||
double value = isreal(d)
|
||||
? d->v_realdata[0]
|
||||
: realpart(d->v_compdata[0]);
|
||||
vv = var_alloc_real(copy(word), value, NULL);
|
||||
return var_alloc_real(copy(word), value, NULL);
|
||||
} else {
|
||||
struct variable *list = NULL;
|
||||
int i;
|
||||
|
|
@ -62,38 +66,30 @@ cp_enqvar(char *word)
|
|||
: realpart(d->v_compdata[i]);
|
||||
list = var_alloc_real(NULL, value, list);
|
||||
}
|
||||
vv = var_alloc_vlist(copy(word), list, NULL);
|
||||
return var_alloc_vlist(copy(word), list, NULL);
|
||||
}
|
||||
|
||||
if (d->v_link2)
|
||||
fprintf(cp_err,
|
||||
"Warning: only one vector may be accessed with the $& notation.\n");
|
||||
return (vv);
|
||||
|
||||
}
|
||||
|
||||
if (plot_cur) {
|
||||
for (vv = plot_cur->pl_env; vv; vv = vv->va_next)
|
||||
if (eq(vv->va_name, word))
|
||||
return (vv);
|
||||
if (eq(word, "curplotname")) {
|
||||
vv = var_alloc_string(copy(word), copy(plot_cur->pl_name), NULL);
|
||||
} else if (eq(word, "curplottitle")) {
|
||||
vv = var_alloc_string(copy(word), copy(plot_cur->pl_title), NULL);
|
||||
} else if (eq(word, "curplotdate")) {
|
||||
vv = var_alloc_string(copy(word), copy(plot_cur->pl_date), NULL);
|
||||
} else if (eq(word, "curplot")) {
|
||||
vv = var_alloc_string(copy(word), copy(plot_cur->pl_typename), NULL);
|
||||
} else if (eq(word, "plots")) {
|
||||
if (eq(word, "curplotname"))
|
||||
return var_alloc_string(copy(word), copy(plot_cur->pl_name), NULL);
|
||||
if (eq(word, "curplottitle"))
|
||||
return var_alloc_string(copy(word), copy(plot_cur->pl_title), NULL);
|
||||
if (eq(word, "curplotdate"))
|
||||
return var_alloc_string(copy(word), copy(plot_cur->pl_date), NULL);
|
||||
if (eq(word, "curplot"))
|
||||
return var_alloc_string(copy(word), copy(plot_cur->pl_typename), NULL);
|
||||
if (eq(word, "plots")) {
|
||||
struct variable *list = NULL;
|
||||
struct plot *pl;
|
||||
for (pl = plot_list; pl; pl = pl->pl_next) {
|
||||
list = var_alloc_string(NULL, copy(pl->pl_typename), list);
|
||||
}
|
||||
vv = var_alloc_vlist(copy(word), list, NULL);
|
||||
return var_alloc_vlist(copy(word), list, NULL);
|
||||
}
|
||||
if (vv)
|
||||
return (vv);
|
||||
}
|
||||
|
||||
if (ft_curckt)
|
||||
|
|
|
|||
|
|
@ -960,30 +960,24 @@ parmtovar(IFvalue *pv, IFparm *opt)
|
|||
{
|
||||
/* It is not clear whether we want to name the variable
|
||||
* by `keyword' or by `description' */
|
||||
struct variable *vv;
|
||||
|
||||
switch (opt->dataType & IF_VARTYPES) {
|
||||
case IF_INTEGER:
|
||||
vv = var_alloc_num(copy(opt->description), pv->iValue, NULL);
|
||||
return vv;
|
||||
return var_alloc_num(copy(opt->description), pv->iValue, NULL);
|
||||
case IF_REAL:
|
||||
case IF_COMPLEX:
|
||||
vv = var_alloc_real(copy(opt->description), pv->rValue, NULL);
|
||||
return vv;
|
||||
return var_alloc_real(copy(opt->description), pv->rValue, NULL);
|
||||
case IF_STRING:
|
||||
vv = var_alloc_string(copy(opt->description), pv->sValue, NULL);
|
||||
return vv;
|
||||
return var_alloc_string(copy(opt->description), pv->sValue, NULL);
|
||||
case IF_FLAG:
|
||||
vv = var_alloc_bool(copy(opt->description), pv->iValue ? TRUE : FALSE, NULL);
|
||||
return vv;
|
||||
return var_alloc_bool(copy(opt->description), pv->iValue ? TRUE : FALSE, NULL);
|
||||
case IF_REALVEC: {
|
||||
struct variable *list = NULL;
|
||||
int i;
|
||||
for (i = pv->v.numValue; --i >= 0;) {
|
||||
list = var_alloc_real(NULL, pv->v.vec.rVec[i], list);
|
||||
}
|
||||
vv = var_alloc_vlist(copy(opt->description), list, NULL);
|
||||
return vv;
|
||||
return var_alloc_vlist(copy(opt->description), list, NULL);
|
||||
/* It is a linked list where the first node is a variable
|
||||
* pointing to the different values of the variables.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -278,8 +278,7 @@ cp_setparse(wordlist *wl)
|
|||
|
||||
wl = wl->wl_next;
|
||||
if ((!wl || (*wl->wl_word != '=')) && !strchr(name, '=')) {
|
||||
vv = var_alloc_bool(copy(name), TRUE, vars);
|
||||
vars = vv;
|
||||
vars = var_alloc_bool(copy(name), TRUE, vars);
|
||||
tfree(name); /*DG: cp_unquote Memory leak*/
|
||||
continue;
|
||||
}
|
||||
|
|
@ -362,8 +361,7 @@ cp_setparse(wordlist *wl)
|
|||
return (NULL);
|
||||
}
|
||||
|
||||
vv = var_alloc_vlist(copy(name), listv, vars);
|
||||
vars = vv;
|
||||
vars = var_alloc_vlist(copy(name), listv, vars);
|
||||
|
||||
wl = wl->wl_next;
|
||||
continue;
|
||||
|
|
@ -373,11 +371,9 @@ cp_setparse(wordlist *wl)
|
|||
td = ft_numparse(&ss, FALSE);
|
||||
if (td) {
|
||||
/*** We should try to get CP_NUM's... */
|
||||
vv = var_alloc_real(copy(name), *td, vars);
|
||||
vars = vv;
|
||||
vars = var_alloc_real(copy(name), *td, vars);
|
||||
} else {
|
||||
vv = var_alloc_string(copy(name), copy(val), vars);
|
||||
vars = vv;
|
||||
vars = var_alloc_string(copy(name), copy(val), vars);
|
||||
}
|
||||
tfree(copyval); /*DG: must free ss any way to avoid cp_unquote memory leak */
|
||||
tfree(name); /* va: cp_unquote memory leak: free name for every loop */
|
||||
|
|
|
|||
Loading…
Reference in New Issue