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 |
