summaryrefslogtreecommitdiff
path: root/json-glib/json-parser.c
diff options
context:
space:
mode:
authorEmmanuele Bassi <ebassi@linux.intel.com>2010-05-26 08:43:10 +0100
committerEmmanuele Bassi <ebassi@linux.intel.com>2010-05-26 08:43:10 +0100
commit6231cf027a8f9c3b11324c1d49a350ba55353123 (patch)
treeb0631868e44b1e8718949de6077d2ea1ab9bc401 /json-glib/json-parser.c
parentfcd07918d3ed2b31b047900da9d2fed23dddf7da (diff)
downloadjson-glib-6231cf027a8f9c3b11324c1d49a350ba55353123.tar.gz
parser: Do not access GScanner:token
The GScanner:token member is declared as GTokenType instead of being an unsigned int. This means that comparing it to any other enumeration is going to generate a warning in GCC >= 4.5. Unfortunately, extending the GTokenType enumeration is the idiomatic way of handling new tokens. EPIC. FAIL.
Diffstat (limited to 'json-glib/json-parser.c')
-rw-r--r--json-glib/json-parser.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/json-glib/json-parser.c b/json-glib/json-parser.c
index f539fe5..9103d86 100644
--- a/json-glib/json-parser.c
+++ b/json-glib/json-parser.c
@@ -890,6 +890,7 @@ json_parser_load (JsonParser *parser,
else
{
guint expected_token;
+ gint cur_token;
/* we try to show the expected token, if possible */
expected_token = json_parse_statement (parser, scanner);
@@ -898,8 +899,10 @@ json_parser_load (JsonParser *parser,
const gchar *symbol_name;
gchar *msg;
+ cur_token = scanner->token;
msg = NULL;
symbol_name = NULL;
+
if (scanner->scope_id == 0)
{
if (expected_token > JSON_TOKEN_INVALID &&
@@ -913,13 +916,13 @@ json_parser_load (JsonParser *parser,
msg = g_strconcat ("e.g. '", symbol_name, "'", NULL);
}
- if (scanner->token > JSON_TOKEN_INVALID &&
- scanner->token < JSON_TOKEN_LAST)
+ if (cur_token > JSON_TOKEN_INVALID &&
+ cur_token < JSON_TOKEN_LAST)
{
symbol_name = "???";
for (i = 0; i < n_symbols; i++)
- if (symbols[i].token == scanner->token)
+ if (symbols[i].token == cur_token)
symbol_name = symbol_names + symbols[i].name_offset;
}
}