Commit 63b16303 authored by Stefano Sabatini's avatar Stefano Sabatini

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
parent d56920e2
...@@ -41,7 +41,7 @@ ...@@ -41,7 +41,7 @@
#define LIBAVUTIL_VERSION_MAJOR 50 #define LIBAVUTIL_VERSION_MAJOR 50
#define LIBAVUTIL_VERSION_MINOR 32 #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, \ #define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
LIBAVUTIL_VERSION_MINOR, \ LIBAVUTIL_VERSION_MINOR, \
......
...@@ -404,12 +404,12 @@ static int parse_expr(AVExpr **e, Parser *p) ...@@ -404,12 +404,12 @@ static int parse_expr(AVExpr **e, Parser *p)
if ((ret = parse_subexpr(&e0, p)) < 0) if ((ret = parse_subexpr(&e0, p)) < 0)
return ret; return ret;
while (*p->s == ';') { while (*p->s == ';') {
p->s++;
e1 = e0; e1 = e0;
if ((ret = parse_subexpr(&e2, p)) < 0) { if ((ret = parse_subexpr(&e2, p)) < 0) {
av_free_expr(e1); av_free_expr(e1);
return ret; return ret;
} }
p->s++;
e0 = new_eval_expr(e_last, 1, e1, e2); e0 = new_eval_expr(e_last, 1, e1, e2);
if (!e0) { if (!e0) {
av_free_expr(e1); av_free_expr(e1);
...@@ -534,6 +534,7 @@ int main(void) ...@@ -534,6 +534,7 @@ int main(void)
double d; double d;
const char **expr, *exprs[] = { const char **expr, *exprs[] = {
"", "",
"1;2",
"1+(5-2)^(3-1)+1/2+sin(PI)-max(-2.2,-3.1)", "1+(5-2)^(3-1)+1/2+sin(PI)-max(-2.2,-3.1)",
"80G/80Gi" "80G/80Gi"
"1k", "1k",
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment