Simplify purple_conversation_manager_find_with_id

Mon, 13 Jan 2025 00:39:46 -0600

author
Gary Kramlich <grim@reaperworld.com>
date
Mon, 13 Jan 2025 00:39:46 -0600
changeset 43132
b8a7d50eb1ae
parent 43131
42a2947d36c6
child 43133
4ce7dac0de47

Simplify purple_conversation_manager_find_with_id

Previously we had a bunch of find functions but this is the last remaning one
so there is no need to call a helper function anymore.

Testing Done:
Called in the turtles.

Bugs closed: PIDGIN-18001

Reviewed at https://reviews.imfreedom.org/r/3746/

libpurple/purpleconversationmanager.c file | annotate | diff | comparison | revisions
--- a/libpurple/purpleconversationmanager.c	Mon Jan 13 00:36:11 2025 -0600
+++ b/libpurple/purpleconversationmanager.c	Mon Jan 13 00:39:46 2025 -0600
@@ -72,56 +72,6 @@
 	}
 }
 
-static gboolean
-purple_conversation_has_id(PurpleConversation *conversation, gpointer data) {
-	const char *needle = data;
-	const char *haystack = NULL;
-
-	if(!PURPLE_IS_CONVERSATION(conversation)) {
-		return FALSE;
-	}
-
-	haystack = purple_conversation_get_id(conversation);
-
-	return purple_strequal(needle, haystack);
-}
-
-static PurpleConversation *
-purple_conversation_manager_find_internal(PurpleConversationManager *manager,
-                                          PurpleAccount *account,
-                                          const char *name,
-                                          PurpleConversationManagerCompareFunc func,
-                                          gpointer userdata)
-{
-	g_return_val_if_fail(PURPLE_IS_ACCOUNT(account), NULL);
-
-	for(guint i = 0; i < manager->conversations->len; i++) {
-		PurpleConversation *conversation = NULL;
-
-		conversation = g_ptr_array_index(manager->conversations, i);
-
-		if(!purple_strempty(name)) {
-			const char *conv_name = purple_conversation_get_name(conversation);
-
-			if(!purple_strequal(conv_name, name)) {
-				continue;
-			}
-		}
-
-		if(purple_conversation_get_account(conversation) != account) {
-			continue;
-		}
-
-		if(func != NULL && !func(conversation, userdata)) {
-			continue;
-		}
-
-		return conversation;
-	}
-
-	return NULL;
-}
-
 /******************************************************************************
  * Callbacks
  *****************************************************************************/
@@ -535,9 +485,20 @@
 	g_return_val_if_fail(PURPLE_IS_CONVERSATION_MANAGER(manager), NULL);
 	g_return_val_if_fail(PURPLE_IS_ACCOUNT(account), NULL);
 
-	return purple_conversation_manager_find_internal(manager, account, NULL,
-	                                                 purple_conversation_has_id,
-	                                                 (gpointer)id);
+	for(guint i = 0; i < manager->conversations->len; i++) {
+		PurpleConversation *conversation = NULL;
+
+		conversation = g_ptr_array_index(manager->conversations, i);
+		if(purple_conversation_get_account(conversation) != account) {
+			continue;
+		}
+
+		if(purple_strequal(purple_conversation_get_id(conversation), id)) {
+			return conversation;
+		}
+	}
+
+	return NULL;
 }
 
 gboolean

mercurial