Revert "validate-utils: simplify _read_builtin ()"
authorOlivier Crête <olivier.crete@collabora.com>
Tue, 2 Jun 2015 20:46:15 +0000 (16:46 -0400)
committerOlivier Crête <olivier.crete@collabora.com>
Tue, 2 Jun 2015 20:46:15 +0000 (16:46 -0400)
This breaks the fast_forward scenario parsing.

This reverts commit 0cfff156b1d7013174652cdd25d3ad3f0571813e.

validate/gst/validate/gst-validate-utils.c

index 96fc0e4..ba4662e 100644 (file)
@@ -344,7 +344,7 @@ _read_argument (MathParser * parser)
 static gdouble
 _read_builtin (MathParser * parser)
 {
-  gdouble v0;
+  gdouble v0 = 0.0, v1 = 0.0;
   gchar c, token[PARSER_MAX_TOKEN_SIZE];
   gint pos = 0;
 
@@ -358,24 +358,26 @@ _read_builtin (MathParser * parser)
 
     if (_peek (parser) == '(') {
       _next (parser);
-      v0 = _read_argument (parser);
-
-      if (g_strcmp0 (token, "min") == 0)
-        v0 = MIN (v0, _read_argument (parser));
-      else if (g_strcmp0 (token, "max") == 0)
-        v0 = MAX (v0, _read_argument (parser));
-      else {
+      if (g_strcmp0 (token, "min") == 0) {
+        v0 = _read_argument (parser);
+        v1 = _read_argument (parser);
+        v0 = MIN (v0, v1);
+      } else if (g_strcmp0 (token, "max") == 0) {
+        v0 = _read_argument (parser);
+        v1 = _read_argument (parser);
+        v0 = MAX (v0, v1);
+      } else {
         _error (parser, "Tried to call unknown built-in function!");
-        return 0.0;
       }
 
       if (_next (parser) != ')')
         _error (parser, "Expected ')' in built-in call!");
     } else {
-      if (parser->variable_func == NULL
-          || !parser->variable_func (token, &v0, parser->user_data)) {
+      if (parser->variable_func != NULL
+          && parser->variable_func (token, &v1, parser->user_data)) {
+        v0 = v1;
+      } else {
         _error (parser, "Could not look up value for variable %s!");
-        return 0.0;
       }
     }
   } else {