summaryrefslogtreecommitdiff
path: root/json-glib/json-generator.c
diff options
context:
space:
mode:
authorEmmanuele Bassi <ebassi@openedhand.com>2007-12-25 11:45:56 +0000
committerEmmanuele Bassi <ebassi@openedhand.com>2007-12-25 11:45:56 +0000
commitba7282dd23e2980203208cb73942535bfefa5906 (patch)
tree47df7ee7fd313005811a655b14ba6c77edbac357 /json-glib/json-generator.c
parent193aca9aabbfc3db8e1faca0a65b19ac7ba96341 (diff)
downloadjson-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.c6
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;
}