OSDN Git Service

Fix evaluation of expressions of the form: E1;E2.
authorStefano Sabatini <stefano.sabatini-lala@poste.it>
Mon, 1 Nov 2010 09:34:12 +0000 (09:34 +0000)
committerStefano Sabatini <stefano.sabatini-lala@poste.it>
Mon, 1 Nov 2010 09:34:12 +0000 (09:34 +0000)
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
libavutil/eval.c

index 74247d3..ba0601c 100644 (file)
@@ -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, \
index 6e03498..c1a0539 100644 (file)
@@ -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",