148 |
|
} else /* reference_count++ */ |
149 |
|
varset(REFVNAME, '=', varvalue(REFVNAME)+1.0); |
150 |
|
} |
151 |
< |
curfunc = NULL; /* parse expressions */ |
151 |
> |
ecurfunc = NULL; /* parse expressions */ |
152 |
|
sprintf(sbuf, "%s \"%s\"", ofun[m->otype].funame, m->oname); |
153 |
|
for (i=0, ne=0; ef && i < na; i++, ef>>=1) |
154 |
|
if (ef & 1) { /* flagged as an expression? */ |
157 |
|
initstr(arg[i], sbuf, 0); |
158 |
|
f->ep[ne++] = getE1(); |
159 |
|
if (nextc != EOF) |
160 |
< |
syntax("unexpected character"); |
160 |
> |
esyntax("unexpected character"); |
161 |
|
} |
162 |
|
if (ef) |
163 |
|
goto toofew; |
203 |
|
if ((f = (MFUNC *)m->os) == NULL) |
204 |
|
return; |
205 |
|
for (i = 0; f->ep[i] != NULL; i++) |
206 |
< |
epfree(f->ep[i]); |
206 |
> |
epfree(f->ep[i],1); |
207 |
|
if (f->ctx[0]) { /* done with definitions */ |
208 |
|
calcontext(f->ctx); |
209 |
|
i = varvalue(REFVNAME)-.5; /* reference_count-- */ |
290 |
|
error(SYSTEM, errmsg); |
291 |
|
} |
292 |
|
fcompile(ffname); |
293 |
+ |
doptimize(1); /* optimize definitions */ |
294 |
|
} |
295 |
|
|
296 |
|
|
336 |
|
) |
337 |
|
{ |
338 |
|
if (fray == NULL) |
339 |
< |
syntax("ray parameter used in constant expression"); |
339 |
> |
esyntax("ray parameter used in constant expression"); |
340 |
|
|
341 |
|
if (--n < 0) |
342 |
|
goto badchan; |