new_obj = (msg_json_gen_object *)g_try_malloc0(sizeof(msg_json_gen_object));
if (new_obj == NULL) {
- g_object_unref(json_value);
+ if (type == MSG_JSON_GEN_OBJECT)
+ g_object_unref(json_value);
+ else if (type == MSG_JSON_GEN_ARRAY)
+ g_array_unref((GArray *)json_value);
+
return NULL;
}
return;
}
if (obj->value != NULL) {
- g_object_unref(obj->value);
+ if (obj->type == MSG_JSON_GEN_OBJECT)
+ g_object_unref(obj->value);
+ else if (obj->type == MSG_JSON_GEN_ARRAY)
+ g_array_unref((GArray *)obj->value);
+
obj->value = NULL;
}
g_free(obj);