From 42f7800c5b1c30ff187fc824a9bb39565033488e Mon Sep 17 00:00:00 2001 From: Emmanuele Bassi Date: Fri, 29 Feb 2008 16:01:48 +0000 Subject: Update JsonParser to fix compilation JsonParser now uses JsonScanner, the internal copy of GScanner. --- json-glib/json-parser.c | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) (limited to 'json-glib/json-parser.c') diff --git a/json-glib/json-parser.c b/json-glib/json-parser.c index 435b4a1..6f275fa 100644 --- a/json-glib/json-parser.c +++ b/json-glib/json-parser.c @@ -96,10 +96,10 @@ static guint parser_signals[LAST_SIGNAL] = { 0, }; G_DEFINE_TYPE (JsonParser, json_parser, G_TYPE_OBJECT); static guint json_parse_array (JsonParser *parser, - GScanner *scanner, + JsonScanner *scanner, gboolean nested); static guint json_parse_object (JsonParser *parser, - GScanner *scanner, + JsonScanner *scanner, gboolean nested); static inline void @@ -308,7 +308,7 @@ json_parser_init (JsonParser *parser) static guint json_parse_array (JsonParser *parser, - GScanner *scanner, + JsonScanner *scanner, gboolean nested) { JsonParserPrivate *priv = parser->priv; @@ -486,7 +486,7 @@ json_parse_array (JsonParser *parser, static guint json_parse_object (JsonParser *parser, - GScanner *scanner, + JsonScanner *scanner, gboolean nested) { JsonParserPrivate *priv = parser->priv; @@ -697,7 +697,7 @@ json_parse_object (JsonParser *parser, static guint json_parse_statement (JsonParser *parser, - GScanner *scanner) + JsonScanner *scanner) { JsonParserPrivate *priv = parser->priv; guint token; @@ -818,7 +818,7 @@ json_parse_statement (JsonParser *parser, } static void -json_scanner_msg_handler (GScanner *scanner, +json_scanner_msg_handler (JsonScanner *scanner, gchar *message, gboolean is_error) { @@ -842,14 +842,22 @@ json_scanner_msg_handler (GScanner *scanner, } static JsonScanner * -json_scanner_new (JsonParser *parser) +json_scanner_create (JsonParser *parser) { JsonScanner *scanner; + gint i; scanner = json_scanner_new (); scanner->msg_handler = json_scanner_msg_handler; scanner->user_data = parser; + for (i = 0; i < n_symbols; i++) + { + json_scanner_scope_add_symbol (scanner, 0, + symbol_names + symbols[i].name_offset, + GINT_TO_POINTER (symbols[i].token)); + } + return scanner; } @@ -933,7 +941,7 @@ json_parser_load_from_data (JsonParser *parser, GError **error) { JsonParserPrivate *priv; - GScanner *scanner; + JsonScanner *scanner; gboolean done; gboolean retval = TRUE; gint i; @@ -948,16 +956,9 @@ json_parser_load_from_data (JsonParser *parser, priv = parser->priv; - scanner = json_scanner_new (parser); + scanner = json_scanner_create (parser); json_scanner_input_text (scanner, data, length); - for (i = 0; i < n_symbols; i++) - { - json_scanner_scope_add_symbol (scanner, 0, - symbol_names + symbols[i].name_offset, - GINT_TO_POINTER (symbols[i].token)); - } - parser->priv->scanner = scanner; g_signal_emit (parser, parser_signals[PARSE_START], 0); -- cgit v1.2.1