summaryrefslogtreecommitdiff
path: root/json-glib/json-parser.c
diff options
context:
space:
mode:
authorEmmanuele Bassi <ebassi@openedhand.com>2007-12-25 11:49:20 +0000
committerEmmanuele Bassi <ebassi@openedhand.com>2007-12-25 11:49:20 +0000
commita90a842f269314c4423de9d84d03391a8efbd7b5 (patch)
treebb5151b990e8c2e5d83f699f3a007056a2544057 /json-glib/json-parser.c
parent7229b9bf0bd15c6c1e5b695f8e291218a041ab45 (diff)
downloadjson-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.c10
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++)
{