diff options
author | Emmanuele Bassi <ebassi@openedhand.com> | 2007-12-25 11:45:56 +0000 |
---|---|---|
committer | Emmanuele Bassi <ebassi@openedhand.com> | 2007-12-25 11:45:56 +0000 |
commit | ba7282dd23e2980203208cb73942535bfefa5906 (patch) | |
tree | 47df7ee7fd313005811a655b14ba6c77edbac357 /json-glib/json-generator.c | |
parent | 193aca9aabbfc3db8e1faca0a65b19ac7ba96341 (diff) | |
download | json-glib-ba7282dd23e2980203208cb73942535bfefa5906.tar.gz |
Do not leak the intermediate strings when generating JSON
Found this very dumb leak while using Valgrind.
Diffstat (limited to 'json-glib/json-generator.c')
-rw-r--r-- | json-glib/json-generator.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/json-glib/json-generator.c b/json-glib/json-generator.c index dbe8709..30fb5b1 100644 --- a/json-glib/json-generator.c +++ b/json-glib/json-generator.c @@ -329,16 +329,19 @@ dump_array (JsonGenerator *generator, case JSON_NODE_VALUE: value = dump_value (generator, sub_level, NULL, cur); g_string_append (buffer, value); + g_free (value); break; case JSON_NODE_ARRAY: value = dump_array (generator, sub_level, NULL, json_node_get_array (cur), NULL); g_string_append (buffer, value); + g_free (value); break; case JSON_NODE_OBJECT: value = dump_object (generator, sub_level, NULL, json_node_get_object (cur), NULL); g_string_append (buffer, value); + g_free (value); break; } @@ -421,18 +424,21 @@ dump_object (JsonGenerator *generator, case JSON_NODE_VALUE: value = dump_value (generator, sub_level, member_name, cur); g_string_append (buffer, value); + g_free (value); break; case JSON_NODE_ARRAY: value = dump_array (generator, sub_level, member_name, json_node_get_array (cur), NULL); g_string_append (buffer, value); + g_free (value); break; case JSON_NODE_OBJECT: value = dump_object (generator, sub_level, member_name, json_node_get_object (cur), NULL); g_string_append (buffer, value); + g_free (value); break; } |