libpurple/protocols/facebook/api.c

changeset 41288
600e7b4219de
parent 41287
dd84ced2309c
child 41289
bcd5530b1462
--- a/libpurple/protocols/facebook/api.c	Sun Mar 13 21:59:38 2022 -0500
+++ b/libpurple/protocols/facebook/api.c	Sun Mar 13 21:59:38 2022 -0500
@@ -1145,9 +1145,10 @@
 		str = strrchr(str, ':');
 
 		if (str != NULL) {
-			devent = fb_api_event_dup(event, FALSE);
+			devent = g_new(FbApiEvent, 1);
 			devent->type = FB_API_EVENT_TYPE_THREAD_TOPIC;
 			devent->uid = FB_ID_FROM_STR(str + 1);
+			devent->tid = event->tid;
 			devent->text = fb_json_values_next_str_dup(values, NULL);
 			events = g_slist_prepend(events, devent);
 		}
@@ -1165,9 +1166,10 @@
 			str = strrchr(str, ':');
 
 			if (str != NULL) {
-				devent = fb_api_event_dup(event, FALSE);
+				devent = g_new0(FbApiEvent, 1);
 				devent->type = evtypes[i].type;
 				devent->uid = FB_ID_FROM_STR(str + 1);
+				devent->tid = event->tid;
 				events = g_slist_prepend(events, devent);
 			}
 		}
@@ -1384,7 +1386,7 @@
 
 		if (str == NULL) {
 			id = fb_json_values_next_int(values, 0);
-			dmsg = fb_api_message_dup(msg, FALSE);
+			dmsg = g_memdup2(msg, sizeof(*msg));
 			fb_api_attach(api, id, mid, dmsg);
 			continue;
 		}
@@ -1399,7 +1401,7 @@
 		xma = fb_api_xma_parse(api, body, xode, &err);
 
 		if (xma != NULL) {
-			dmsg = fb_api_message_dup(msg, FALSE);
+			dmsg = g_memdup2(msg, sizeof(*msg));
 			dmsg->text = xma;
 			msgs = g_slist_prepend(msgs, dmsg);
 		}
@@ -1627,7 +1629,7 @@
 		body = fb_json_values_next_str(values, NULL);
 
 		if (body != NULL) {
-			dmsg = fb_api_message_dup(&msg, FALSE);
+			dmsg = g_memdup2(&msg, sizeof(msg));
 			dmsg->text = g_strdup(body);
 			msgs = g_slist_prepend(msgs, dmsg);
 		}
@@ -1635,7 +1637,7 @@
 		id = fb_json_values_next_int(values, 0);
 
 		if (id != 0) {
-			dmsg = fb_api_message_dup(&msg, FALSE);
+			dmsg = g_memdup2(&msg, sizeof(msg));
 			fb_api_sticker(api, id, dmsg);
 		}
 
@@ -1720,15 +1722,16 @@
 	} else if (type == FB_API_EVENT_TYPE_THREAD_USER_ADDED) {
 
 		while (fb_json_values_update(values_inner, &err)) {
-			FbApiEvent *devent = fb_api_event_dup(event, FALSE);
-
+			FbApiEvent *devent = g_new0(FbApiEvent, 1);
+
+			devent->type = event->type;
 			devent->uid = fb_json_values_next_int(values_inner, 0);
+			devent->tid = event->tid;
 			devent->text = fb_json_values_next_str_dup(values_inner, NULL);
 
 			events = g_slist_prepend(events, devent);
 		}
-		fb_api_event_free(event);
-		event = NULL;
+		g_clear_pointer(&event, fb_api_event_free);
 		g_object_unref(values_inner);
 	}
 
@@ -2629,7 +2632,7 @@
 	while (fb_json_values_update(values, &err)) {
 		str = fb_json_values_next_str(values, NULL);
 		id = FB_ID_FROM_STR(str);
-		dmsg = fb_api_message_dup(msg, FALSE);
+		dmsg = g_memdup2(msg, sizeof(*msg));
 		fb_api_attach(api, id, mid, dmsg);
 	}
 
@@ -2715,7 +2718,7 @@
 		msg.tstamp = g_ascii_strtoll(str, NULL, 10);
 
 		if (body != NULL) {
-			dmsg = fb_api_message_dup(&msg, FALSE);
+			dmsg = g_memdup2(&msg, sizeof(msg));
 			dmsg->text = g_strdup(body);
 			msgs = g_slist_prepend(msgs, dmsg);
 		}
@@ -2723,7 +2726,7 @@
 		str = fb_json_values_next_str(values, NULL);
 
 		if (str != NULL) {
-			dmsg = fb_api_message_dup(&msg, FALSE);
+			dmsg = g_memdup2(&msg, sizeof(msg));
 			id = FB_ID_FROM_STR(str);
 			fb_api_sticker(api, id, dmsg);
 		}
@@ -2735,7 +2738,7 @@
 			xma = fb_api_xma_parse(api, body, xode, &err);
 
 			if (xma != NULL) {
-				dmsg = fb_api_message_dup(&msg, FALSE);
+				dmsg = g_memdup2(&msg, sizeof(msg));
 				dmsg->text = xma;
 				msgs = g_slist_prepend(msgs, dmsg);
 			}
@@ -3209,7 +3212,7 @@
 		fb_api_thread_reset(&thrd, FALSE);
 
 		if (fb_api_thread_parse(api, &thrd, l->data, &err)) {
-			dthrd = fb_api_thread_dup(&thrd, FALSE);
+			dthrd = g_memdup2(&thrd, sizeof(thrd));
 			thrds = g_slist_prepend(thrds, dthrd);
 		} else {
 			fb_api_thread_reset(&thrd, TRUE);

mercurial