diff -r 85be702275e6 -r 42e7b89033fe protocols/ircv3/purpleircv3protocolconversation.c --- a/protocols/ircv3/purpleircv3protocolconversation.c Mon Apr 21 22:43:29 2025 -0500 +++ b/protocols/ircv3/purpleircv3protocolconversation.c Mon Apr 21 23:09:08 2025 -0500 @@ -186,22 +186,21 @@ "online", TRUE, NULL); purple_conversation_manager_add(manager, conversation); - g_clear_object(&conversation); ibis_client_write(client, message); g_free(normalized_name); - g_task_return_boolean(task, TRUE); + g_task_return_pointer(task, conversation, g_object_unref); g_clear_object(&task); } -static gboolean +static PurpleConversation * purple_ircv3_protocol_conversation_join_channel_finish(G_GNUC_UNUSED PurpleProtocolConversation *protocol, GAsyncResult *result, GError **error) { - return g_task_propagate_boolean(G_TASK(result), error); + return g_task_propagate_pointer(G_TASK(result), error); } static void