summaryrefslogtreecommitdiff
path: root/json-glib/json-parser.c
diff options
context:
space:
mode:
authorEmmanuele Bassi <ebassi@openedhand.com>2007-12-25 21:41:44 +0000
committerEmmanuele Bassi <ebassi@openedhand.com>2007-12-25 21:41:44 +0000
commite172e9ccec88999e7d8433df08d8d92568537cf7 (patch)
tree1111ef64a1028d744131e0c6fe3cd6179d309a57 /json-glib/json-parser.c
parent61a6a144a2182946be4fb975d05e1c26d814c323 (diff)
downloadjson-glib-e172e9ccec88999e7d8433df08d8d92568537cf7.tar.gz
Kill off a few indirections
Use an intermediary pointer to avoid a lot of pointer dereferences
Diffstat (limited to 'json-glib/json-parser.c')
-rw-r--r--json-glib/json-parser.c25
1 files changed, 14 insertions, 11 deletions
diff --git a/json-glib/json-parser.c b/json-glib/json-parser.c
index 82c4a4f..d129774 100644
--- a/json-glib/json-parser.c
+++ b/json-glib/json-parser.c
@@ -964,6 +964,7 @@ json_parser_load_from_data (JsonParser *parser,
gssize length,
GError **error)
{
+ JsonParserPrivate *priv;
GScanner *scanner;
gboolean done;
gboolean retval = TRUE;
@@ -972,12 +973,14 @@ json_parser_load_from_data (JsonParser *parser,
g_return_val_if_fail (JSON_IS_PARSER (parser), FALSE);
g_return_val_if_fail (data != NULL, FALSE);
- g_free (parser->priv->variable_name);
+ priv = parser->priv;
+
+ g_free (priv->variable_name);
- if (parser->priv->root)
+ if (priv->root)
{
- json_node_free (parser->priv->root);
- parser->priv->root = NULL;
+ json_node_free (priv->root);
+ priv->root = NULL;
}
if (length < 0)
@@ -1050,10 +1053,10 @@ json_parser_load_from_data (JsonParser *parser,
/* and this will propagate the error we create in the
* same message handler
*/
- if (parser->priv->last_error)
+ if (priv->last_error)
{
- g_propagate_error (error, parser->priv->last_error);
- parser->priv->last_error = NULL;
+ g_propagate_error (error, priv->last_error);
+ priv->last_error = NULL;
}
retval = FALSE;
@@ -1064,12 +1067,12 @@ json_parser_load_from_data (JsonParser *parser,
}
}
- g_scanner_destroy (scanner);
- parser->priv->scanner = NULL;
- parser->priv->current_node = NULL;
-
g_signal_emit (parser, parser_signals[PARSE_END], 0);
+ g_scanner_destroy (scanner);
+ priv->scanner = NULL;
+ priv->current_node = NULL;
+
return retval;
}