Mon, 13 Jan 2025 00:39:46 -0600
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