--- a/hangouts_connection.c Fri Sep 23 16:20:23 2016 +1200
+++ b/hangouts_connection.c Sat Sep 24 15:02:34 2016 -0300
@@ -453,14 +453,17 @@
for(i = 0; i < map_list_len; i++) {
JsonObject *obj = json_array_get_object_element(map_list, i);
GList *members = json_object_get_members(obj);
- for (; members != NULL; members = members->next) {
- const gchar *member_name = members->data;
+ for (l = members; l != NULL; l = l->next) { + const gchar *member_name = l->data; JsonNode *value = json_object_get_member(obj, member_name);
g_string_append_printf(postdata, "req%u_%s=", i, purple_url_encode(member_name));
g_string_append_printf(postdata, "%s&", purple_url_encode(json_node_get_string(value)));
purple_http_request_set_contents(request, postdata->str, postdata->len);
--- a/hangouts_conversation.c Fri Sep 23 16:20:23 2016 +1200
+++ b/hangouts_conversation.c Sat Sep 24 15:02:34 2016 -0300
@@ -954,6 +954,8 @@
+ json_object_unref(obj); --- a/hangouts_json.c Fri Sep 23 16:20:23 2016 +1200
+++ b/hangouts_json.c Sat Sep 24 15:02:34 2016 -0300
@@ -101,6 +101,7 @@
json_decode_array(const gchar *data, gssize len)
JsonNode *root = json_decode(data, len);
g_return_val_if_fail(root, NULL);
@@ -109,14 +110,19 @@
+ ret = json_node_dup_array(root); - return json_node_get_array(root);
json_decode_object(const gchar *data, gssize len)
JsonNode *root = json_decode(data, len);
g_return_val_if_fail(root, NULL);
@@ -126,7 +132,11 @@
- return json_node_get_object(root);
+ ret = json_node_dup_object(root); --- a/hangouts_pblite.c Fri Sep 23 16:20:23 2016 +1200
+++ b/hangouts_pblite.c Sat Sep 24 15:02:34 2016 -0300
@@ -296,6 +296,7 @@
array_len = json_array_get_length(value_array);
@@ -305,7 +306,7 @@
siz = sizeof_elt_in_repeated_array(field->type);
STRUCT_MEMBER(size_t, message, field->quantifier_offset) = array_len;
- STRUCT_MEMBER(void *, message, field->offset) = g_malloc0(siz * array_len);
+ STRUCT_MEMBER(void *, message, field->offset) = tmp = g_malloc0(siz * array_len); for (j = 0; j < array_len; j++) {
@@ -314,7 +315,10 @@
success = pblite_decode_field(field, json_array_get_element(value_array, j), STRUCT_MEMBER(void *, message, field->offset) + (siz * j));
- g_return_val_if_fail(success, FALSE);
+ g_return_val_if_fail(success, FALSE); success = pblite_decode_field(field, value, STRUCT_MEMBER_P(message, field->offset));
@@ -369,8 +373,9 @@
if (last_element_is_object) {
JsonObject *last_object = json_array_get_object_element(pblite_array, len);
GList *members = json_object_get_members(last_object);
- for (; members != NULL; members = members->next) {
- const gchar *member_name = members->data;
+ for (l = members; l != NULL; l = l->next) { + const gchar *member_name = l->data; guint64 member = g_ascii_strtoull(member_name, NULL, 0);
JsonNode *value = json_object_get_member(last_object, member_name);
@@ -378,6 +383,7 @@
g_return_val_if_fail(success, FALSE);