Mercurial > libavcodec.hg
comparison eval.c @ 11597:fce0ed54244c libavcodec
Rename ff_eval_free() to ff_free_expr().
author | stefano |
---|---|
date | Sun, 11 Apr 2010 11:47:33 +0000 |
parents | e22a96273dc4 |
children | 29fda2500178 |
comparison
equal
deleted
inserted
replaced
11596:e22a96273dc4 | 11597:fce0ed54244c |
---|---|
171 return NAN; | 171 return NAN; |
172 } | 172 } |
173 | 173 |
174 static AVExpr * parse_expr(Parser *p); | 174 static AVExpr * parse_expr(Parser *p); |
175 | 175 |
176 void ff_eval_free(AVExpr * e) { | 176 void ff_free_expr(AVExpr * e) { |
177 if (!e) return; | 177 if (!e) return; |
178 ff_eval_free(e->param[0]); | 178 ff_free_expr(e->param[0]); |
179 ff_eval_free(e->param[1]); | 179 ff_free_expr(e->param[1]); |
180 av_freep(&e); | 180 av_freep(&e); |
181 } | 181 } |
182 | 182 |
183 static AVExpr * parse_primary(Parser *p) { | 183 static AVExpr * parse_primary(Parser *p) { |
184 AVExpr * d = av_mallocz(sizeof(AVExpr)); | 184 AVExpr * d = av_mallocz(sizeof(AVExpr)); |
209 | 209 |
210 p->s= strchr(p->s, '('); | 210 p->s= strchr(p->s, '('); |
211 if(p->s==NULL){ | 211 if(p->s==NULL){ |
212 *p->error = "undefined constant or missing ("; | 212 *p->error = "undefined constant or missing ("; |
213 p->s= next; | 213 p->s= next; |
214 ff_eval_free(d); | 214 ff_free_expr(d); |
215 return NULL; | 215 return NULL; |
216 } | 216 } |
217 p->s++; // "(" | 217 p->s++; // "(" |
218 if (*next == '(') { // special case do-nothing | 218 if (*next == '(') { // special case do-nothing |
219 av_freep(&d); | 219 av_freep(&d); |
220 d = parse_expr(p); | 220 d = parse_expr(p); |
221 if(p->s[0] != ')'){ | 221 if(p->s[0] != ')'){ |
222 *p->error = "missing )"; | 222 *p->error = "missing )"; |
223 ff_eval_free(d); | 223 ff_free_expr(d); |
224 return NULL; | 224 return NULL; |
225 } | 225 } |
226 p->s++; // ")" | 226 p->s++; // ")" |
227 return d; | 227 return d; |
228 } | 228 } |
231 p->s++; // "," | 231 p->s++; // "," |
232 d->param[1] = parse_expr(p); | 232 d->param[1] = parse_expr(p); |
233 } | 233 } |
234 if(p->s[0] != ')'){ | 234 if(p->s[0] != ')'){ |
235 *p->error = "missing )"; | 235 *p->error = "missing )"; |
236 ff_eval_free(d); | 236 ff_free_expr(d); |
237 return NULL; | 237 return NULL; |
238 } | 238 } |
239 p->s++; // ")" | 239 p->s++; // ")" |
240 | 240 |
241 d->type = e_func0; | 241 d->type = e_func0; |
280 return d; | 280 return d; |
281 } | 281 } |
282 } | 282 } |
283 | 283 |
284 *p->error = "unknown function"; | 284 *p->error = "unknown function"; |
285 ff_eval_free(d); | 285 ff_free_expr(d); |
286 return NULL; | 286 return NULL; |
287 } | 287 } |
288 | 288 |
289 return d; | 289 return d; |
290 } | 290 } |
402 p.func2_name = func2_name; | 402 p.func2_name = func2_name; |
403 p.error= error; | 403 p.error= error; |
404 | 404 |
405 e = parse_expr(&p); | 405 e = parse_expr(&p); |
406 if (!verify_expr(e)) { | 406 if (!verify_expr(e)) { |
407 ff_eval_free(e); | 407 ff_free_expr(e); |
408 e = NULL; | 408 e = NULL; |
409 } | 409 } |
410 end: | 410 end: |
411 av_free(w); | 411 av_free(w); |
412 return e; | 412 return e; |
426 void *opaque, const char **error){ | 426 void *opaque, const char **error){ |
427 AVExpr * e = ff_parse(s, const_name, func1, func1_name, func2, func2_name, error); | 427 AVExpr * e = ff_parse(s, const_name, func1, func1_name, func2, func2_name, error); |
428 double d; | 428 double d; |
429 if (!e) return NAN; | 429 if (!e) return NAN; |
430 d = ff_parse_eval(e, const_value, opaque); | 430 d = ff_parse_eval(e, const_value, opaque); |
431 ff_eval_free(e); | 431 ff_free_expr(e); |
432 return d; | 432 return d; |
433 } | 433 } |
434 | 434 |
435 #ifdef TEST | 435 #ifdef TEST |
436 #undef printf | 436 #undef printf |