diff options
author | Emmanuele Bassi <ebassi@openedhand.com> | 2007-12-25 11:49:20 +0000 |
---|---|---|
committer | Emmanuele Bassi <ebassi@openedhand.com> | 2007-12-25 11:49:20 +0000 |
commit | a90a842f269314c4423de9d84d03391a8efbd7b5 (patch) | |
tree | bb5151b990e8c2e5d83f699f3a007056a2544057 /json-glib/json-parser.c | |
parent | 7229b9bf0bd15c6c1e5b695f8e291218a041ab45 (diff) | |
download | json-glib-a90a842f269314c4423de9d84d03391a8efbd7b5.tar.gz |
Use gssize for the buffer length parameter
Since we allow a negative value, meaning "take the whole string", for the
length parameter, when need a signed size_t. This also fixes the bug where
we implicitly always computed the buffer length and discarded the passed
length parameter.
Diffstat (limited to 'json-glib/json-parser.c')
-rw-r--r-- | json-glib/json-parser.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/json-glib/json-parser.c b/json-glib/json-parser.c index 9d40add..4ad9884 100644 --- a/json-glib/json-parser.c +++ b/json-glib/json-parser.c @@ -961,7 +961,7 @@ json_parser_load_from_file (JsonParser *parser, gboolean json_parser_load_from_data (JsonParser *parser, const gchar *data, - gsize length, + gssize length, GError **error) { GScanner *scanner; @@ -972,17 +972,17 @@ 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); - if (length < 0) - length = strlen (data); - if (parser->priv->root) { json_node_free (parser->priv->root); parser->priv->root = NULL; } + if (length < 0) + length = strlen (data); + scanner = json_scanner_new (parser); - g_scanner_input_text (scanner, data, strlen (data)); + g_scanner_input_text (scanner, data, length); for (i = 0; i < n_symbols; i++) { |