From 63b1630356f41c1de164aa98ad6ae16db8411a21 Mon Sep 17 00:00:00 2001 From: Stefano Sabatini Date: Mon, 1 Nov 2010 09:34:12 +0000 Subject: [PATCH] Fix evaluation of expressions of the form: E1;E2. The pointer to the char ';' has to be increased before to evaluate ";E2". Originally committed as revision 25623 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavutil/avutil.h | 2 +- libavutil/eval.c | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/libavutil/avutil.h b/libavutil/avutil.h index 74247d3ae4..ba0601cd26 100644 --- a/libavutil/avutil.h +++ b/libavutil/avutil.h @@ -41,7 +41,7 @@ #define LIBAVUTIL_VERSION_MAJOR 50 #define LIBAVUTIL_VERSION_MINOR 32 -#define LIBAVUTIL_VERSION_MICRO 3 +#define LIBAVUTIL_VERSION_MICRO 4 #define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \ LIBAVUTIL_VERSION_MINOR, \ diff --git a/libavutil/eval.c b/libavutil/eval.c index 6e0349872b..c1a0539ecd 100644 --- a/libavutil/eval.c +++ b/libavutil/eval.c @@ -404,12 +404,12 @@ static int parse_expr(AVExpr **e, Parser *p) if ((ret = parse_subexpr(&e0, p)) < 0) return ret; while (*p->s == ';') { + p->s++; e1 = e0; if ((ret = parse_subexpr(&e2, p)) < 0) { av_free_expr(e1); return ret; } - p->s++; e0 = new_eval_expr(e_last, 1, e1, e2); if (!e0) { av_free_expr(e1); @@ -534,6 +534,7 @@ int main(void) double d; const char **expr, *exprs[] = { "", + "1;2", "1+(5-2)^(3-1)+1/2+sin(PI)-max(-2.2,-3.1)", "80G/80Gi" "1k",