diff options
author | Emmanuele Bassi <ebassi@openedhand.com> | 2007-11-21 20:05:07 +0000 |
---|---|---|
committer | Emmanuele Bassi <ebassi@openedhand.com> | 2007-11-21 20:05:07 +0000 |
commit | 0b6b09c0fe2fdd21b18593192e7213d1b0098f12 (patch) | |
tree | 415393e8d42ed8bbbaf042437004313f3421e2da /json-glib/json-parser.c | |
parent | 5f110dc5ad338497c95418b9ad1b267c95fb8ded (diff) | |
download | json-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.c | 26 |
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 * |