summaryrefslogtreecommitdiff
path: root/json-glib/json-parser.c
diff options
context:
space:
mode:
authorEmmanuele Bassi <ebassi@openedhand.com>2007-11-21 20:05:07 +0000
committerEmmanuele Bassi <ebassi@openedhand.com>2007-11-21 20:05:07 +0000
commit0b6b09c0fe2fdd21b18593192e7213d1b0098f12 (patch)
tree415393e8d42ed8bbbaf042437004313f3421e2da /json-glib/json-parser.c
parent5f110dc5ad338497c95418b9ad1b267c95fb8ded (diff)
downloadjson-glib-0b6b09c0fe2fdd21b18593192e7213d1b0098f12.tar.gz
Change json_parser_get_root() semantics
The json_parser_get_root() returns a pointer to the root node. This does not conform to the API naming convention inherited from GLib, where functions returning an internal pointer are called "peek" and function returning a copy are called "get". Thus, json_parser_get_root() will now return a copy of the root node and it is left to the developer to free the returned JsonNode. A function returning the pointer has also been added, and it's called json_parser_peek_root().
Diffstat (limited to 'json-glib/json-parser.c')
-rw-r--r--json-glib/json-parser.c26
1 files changed, 24 insertions, 2 deletions
diff --git a/json-glib/json-parser.c b/json-glib/json-parser.c
index 60cc39a..9d40add 100644
--- a/json-glib/json-parser.c
+++ b/json-glib/json-parser.c
@@ -1072,16 +1072,18 @@ json_parser_load_from_data (JsonParser *parser,
}
/**
- * json_parser_get_root:
+ * json_parser_peek_root:
* @parser: a #JsonParser
*
* Retrieves the top level node from the parsed JSON stream.
*
* Return value: the root #JsonNode . The returned node is owned by
* the #JsonParser and should never be modified or freed.
+ *
+ * Since: 0.6
*/
JsonNode *
-json_parser_get_root (JsonParser *parser)
+json_parser_peek_root (JsonParser *parser)
{
g_return_val_if_fail (JSON_IS_PARSER (parser), NULL);
@@ -1089,6 +1091,26 @@ json_parser_get_root (JsonParser *parser)
}
/**
+ * json_parser_get_root:
+ * @parser: a #JsonParser
+ *
+ * Retrieves a copy of the top level node from the parsed JSON stream.
+ *
+ * Return value: a newly allocated copy of the root #JsonNode. Use
+ * json_node_free() to free its allocated resources.
+ */
+JsonNode *
+json_parser_get_root (JsonParser *parser)
+{
+ g_return_val_if_fail (JSON_IS_PARSER (parser), NULL);
+
+ if (!parser->priv->root)
+ return NULL;
+
+ return json_node_copy (parser->priv->root);
+}
+
+/**
* json_parser_get_current_line:
* @parser: a #JsonParser
*