From 66e0f187533f5ee322967cff8996c9f1e22d8361 Mon Sep 17 00:00:00 2001 From: Emmanuele Bassi Date: Fri, 19 Mar 2010 11:13:04 +0000 Subject: [PATCH] json: Update JsonParser Add another fix from upstream, to clean up the code. --- clutter/json/json-parser.c | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/clutter/json/json-parser.c b/clutter/json/json-parser.c index 4b3125a..3ef5afb 100644 --- a/clutter/json/json-parser.c +++ b/clutter/json/json-parser.c @@ -512,21 +512,19 @@ json_parse_array (JsonParser *parser, } token = g_scanner_get_next_token (scanner); - if (token == G_TOKEN_RIGHT_BRACE) - break; if (token == G_TOKEN_COMMA) { token = g_scanner_get_next_token (scanner); if (token == G_TOKEN_RIGHT_BRACE) return G_TOKEN_SYMBOL; - - continue; } + else if (token != G_TOKEN_RIGHT_BRACE) + { + json_array_unref (array); - json_array_unref (array); - - return G_TOKEN_RIGHT_BRACE; + return G_TOKEN_RIGHT_BRACE; + } } json_node_take_array (priv->current_node, array); @@ -590,6 +588,7 @@ json_parse_object (JsonParser *parser, return G_TOKEN_STRING; } + /* nested object */ if (token == G_TOKEN_LEFT_CURLY) { JsonNode *old_node = priv->current_node; @@ -639,7 +638,8 @@ json_parse_object (JsonParser *parser, return G_TOKEN_RIGHT_CURLY; } - + + /* nested array */ if (token == G_TOKEN_LEFT_BRACE) { JsonNode *old_node = priv->current_node; @@ -752,21 +752,19 @@ json_parse_object (JsonParser *parser, g_free (name); token = g_scanner_get_next_token (scanner); - if (token == G_TOKEN_RIGHT_CURLY) - break; if (token == G_TOKEN_COMMA) { token = g_scanner_get_next_token (scanner); if (token == G_TOKEN_RIGHT_CURLY) return G_TOKEN_SYMBOL; - - continue; } + else if (token != G_TOKEN_RIGHT_CURLY) + { + json_object_unref (object); - json_object_unref (object); - - return G_TOKEN_RIGHT_CURLY; + return G_TOKEN_RIGHT_CURLY; + } } json_node_take_object (priv->current_node, object); -- 2.7.4