pidgin/pidgin

Parents 580339aa47cc
Children f8b477a1b0b6
Make sure all of the final types in libpurple are defined as such

Testing Done:
Compiled and ran the tests.

Reviewed at https://reviews.imfreedom.org/r/2922/
  • +2 -2
    libpurple/media/candidate.c
  • +2 -1
    libpurple/media/codec.c
  • +4 -4
    libpurple/mediamanager.c
  • +1 -1
    libpurple/purpleaccount.c
  • +4 -4
    libpurple/purpleaccountmanager.c
  • +2 -2
    libpurple/purpleaccountpresence.c
  • +2 -2
    libpurple/purpleaddcontactrequest.c
  • +1 -1
    libpurple/purpleattachment.c
  • +2 -2
    libpurple/purpleauthorizationrequest.c
  • +1 -1
    libpurple/purpleavatar.c
  • +2 -1
    libpurple/purplebuddypresence.c
  • +2 -2
    libpurple/purplechanneljoindetails.c
  • +1 -1
    libpurple/purplechatuser.c
  • +1 -1
    libpurple/purplecontact.c
  • +2 -2
    libpurple/purpleconversationmanager.c
  • +2 -2
    libpurple/purpleconversationmember.c
  • +2 -2
    libpurple/purplecredentialmanager.c
  • +1 -1
    libpurple/purplefiletransfer.c
  • +2 -1
    libpurple/purplehistorymanager.c
  • +1 -1
    libpurple/purpleidlemanager.c
  • +1 -1
    libpurple/purplemessage.c
  • +3 -2
    libpurple/purplenoopcredentialprovider.c
  • +1 -1
    libpurple/purplenotification.c
  • +4 -3
    libpurple/purplenotificationmanager.c
  • +3 -3
    libpurple/purpleperson.c
  • +4 -4
    libpurple/purplepresencemanager.c
  • +4 -4
    libpurple/purpleprotocolmanager.c
  • +1 -1
    libpurple/purpleproxyinfo.c
  • +1 -1
    libpurple/purplesavedpresence.c
  • +2 -2
    libpurple/purplesqlitehistoryadapter.c
  • +1 -1
    libpurple/purpletags.c
  • +5 -3
    libpurple/purplewhiteboardmanager.c
  • +2 -2
    libpurple/request/purplerequestfieldaccount.c
  • +2 -2
    libpurple/request/purplerequestfieldbool.c
  • +2 -2
    libpurple/request/purplerequestfieldchoice.c
  • +3 -2
    libpurple/request/purplerequestfielddatasheet.c
  • +2 -2
    libpurple/request/purplerequestfieldimage.c
  • +2 -2
    libpurple/request/purplerequestfieldint.c
  • +2 -2
    libpurple/request/purplerequestfieldlabel.c
  • +2 -2
    libpurple/request/purplerequestfieldlist.c
  • +2 -2
    libpurple/request/purplerequestfieldstring.c
  • +3 -3
    libpurple/request/purplerequestgroup.c
  • +3 -3
    libpurple/request/purplerequestpage.c
  • +2 -1
    libpurple/roomlist.c
  • +1 -1
    libpurple/status.c
  • +3 -3
    libpurple/tests/test_credential_manager.c
  • +6 -6
    libpurple/tests/test_credential_provider.c
  • +3 -3
    libpurple/tests/test_history_adapter.c
  • +3 -3
    libpurple/tests/test_history_manager.c
  • +2 -1
    libpurple/tests/test_protocol.c
  • +9 -9
    libpurple/tests/test_protocol_contacts.c
  • +10 -9
    libpurple/tests/test_protocol_conversation.c
  • +10 -9
    libpurple/tests/test_protocol_file_transfer.c
  • +10 -9
    libpurple/tests/test_protocol_roster.c
  • +1 -1
    libpurple/tests/test_ui.c
  • --- a/libpurple/media/candidate.c Tue Jan 23 00:29:26 2024 -0600
    +++ b/libpurple/media/candidate.c Tue Jan 23 00:31:44 2024 -0600
    @@ -64,8 +64,8 @@
    PROP_TTL,
    };
    -G_DEFINE_TYPE_WITH_PRIVATE(PurpleMediaCandidate, purple_media_candidate,
    - G_TYPE_OBJECT);
    +G_DEFINE_FINAL_TYPE_WITH_PRIVATE(PurpleMediaCandidate, purple_media_candidate,
    + G_TYPE_OBJECT)
    static void
    purple_media_candidate_init(PurpleMediaCandidate *info)
    --- a/libpurple/media/codec.c Tue Jan 23 00:29:26 2024 -0600
    +++ b/libpurple/media/codec.c Tue Jan 23 00:31:44 2024 -0600
    @@ -49,7 +49,8 @@
    static GParamSpec *properties[PROP_LAST];
    -G_DEFINE_TYPE_WITH_PRIVATE(PurpleMediaCodec, purple_media_codec, G_TYPE_OBJECT);
    +G_DEFINE_FINAL_TYPE_WITH_PRIVATE(PurpleMediaCodec, purple_media_codec,
    + G_TYPE_OBJECT)
    static void
    purple_media_codec_init(PurpleMediaCodec *info)
    --- a/libpurple/mediamanager.c Tue Jan 23 00:29:26 2024 -0600
    +++ b/libpurple/mediamanager.c Tue Jan 23 00:31:44 2024 -0600
    @@ -120,8 +120,8 @@
    };
    static guint purple_media_manager_signals[LAST_SIGNAL] = {0};
    -G_DEFINE_TYPE_WITH_PRIVATE(PurpleMediaManager, purple_media_manager,
    - G_TYPE_OBJECT);
    +G_DEFINE_FINAL_TYPE_WITH_PRIVATE(PurpleMediaManager, purple_media_manager,
    + G_TYPE_OBJECT);
    static void
    purple_media_manager_class_init (PurpleMediaManagerClass *klass)
    @@ -2240,8 +2240,8 @@
    PROP_CREATE_CB,
    };
    -G_DEFINE_TYPE_WITH_PRIVATE(PurpleMediaElementInfo,
    - purple_media_element_info, G_TYPE_OBJECT);
    +G_DEFINE_FINAL_TYPE_WITH_PRIVATE(PurpleMediaElementInfo,
    + purple_media_element_info, G_TYPE_OBJECT);
    static void
    purple_media_element_info_init(PurpleMediaElementInfo *info)
    --- a/libpurple/purpleaccount.c Tue Jan 23 00:29:26 2024 -0600
    +++ b/libpurple/purpleaccount.c Tue Jan 23 00:31:44 2024 -0600
    @@ -112,7 +112,7 @@
    };
    static guint signals[N_SIGNALS] = {0, };
    -G_DEFINE_TYPE(PurpleAccount, purple_account, PURPLE_TYPE_CONTACT_INFO);
    +G_DEFINE_FINAL_TYPE(PurpleAccount, purple_account, PURPLE_TYPE_CONTACT_INFO);
    /******************************************************************************
    * Helpers
    --- a/libpurple/purpleaccountmanager.c Tue Jan 23 00:29:26 2024 -0600
    +++ b/libpurple/purpleaccountmanager.c Tue Jan 23 00:31:44 2024 -0600
    @@ -121,10 +121,10 @@
    /******************************************************************************
    * GObject Implementation
    *****************************************************************************/
    -G_DEFINE_TYPE_EXTENDED(PurpleAccountManager, purple_account_manager,
    - G_TYPE_OBJECT, G_TYPE_FLAG_FINAL,
    - G_IMPLEMENT_INTERFACE(G_TYPE_LIST_MODEL,
    - purple_account_manager_list_model_init))
    +G_DEFINE_FINAL_TYPE_WITH_CODE(PurpleAccountManager, purple_account_manager,
    + G_TYPE_OBJECT,
    + G_IMPLEMENT_INTERFACE(G_TYPE_LIST_MODEL,
    + purple_account_manager_list_model_init))
    static void
    purple_account_manager_finalize(GObject *obj) {
    --- a/libpurple/purpleaccountpresence.c Tue Jan 23 00:29:26 2024 -0600
    +++ b/libpurple/purpleaccountpresence.c Tue Jan 23 00:31:44 2024 -0600
    @@ -111,8 +111,8 @@
    /******************************************************************************
    * GObject Implementation
    *****************************************************************************/
    -G_DEFINE_TYPE(PurpleAccountPresence, purple_account_presence,
    - PURPLE_TYPE_PRESENCE)
    +G_DEFINE_FINAL_TYPE(PurpleAccountPresence, purple_account_presence,
    + PURPLE_TYPE_PRESENCE)
    static void
    purple_account_presence_set_property(GObject *obj, guint param_id,
    --- a/libpurple/purpleaddcontactrequest.c Tue Jan 23 00:29:26 2024 -0600
    +++ b/libpurple/purpleaddcontactrequest.c Tue Jan 23 00:31:44 2024 -0600
    @@ -47,8 +47,8 @@
    };
    static GParamSpec *properties[N_PROPERTIES] = {NULL, };
    -G_DEFINE_TYPE(PurpleAddContactRequest, purple_add_contact_request,
    - G_TYPE_OBJECT)
    +G_DEFINE_FINAL_TYPE(PurpleAddContactRequest, purple_add_contact_request,
    + G_TYPE_OBJECT)
    /******************************************************************************
    * Helpers
    --- a/libpurple/purpleattachment.c Tue Jan 23 00:29:26 2024 -0600
    +++ b/libpurple/purpleattachment.c Tue Jan 23 00:31:44 2024 -0600
    @@ -35,7 +35,7 @@
    guint64 size;
    };
    -G_DEFINE_TYPE(PurpleAttachment, purple_attachment, G_TYPE_OBJECT);
    +G_DEFINE_FINAL_TYPE(PurpleAttachment, purple_attachment, G_TYPE_OBJECT);
    enum {
    PROP_0 = 0,
    --- a/libpurple/purpleauthorizationrequest.c Tue Jan 23 00:29:26 2024 -0600
    +++ b/libpurple/purpleauthorizationrequest.c Tue Jan 23 00:31:44 2024 -0600
    @@ -50,8 +50,8 @@
    };
    static GParamSpec *properties[N_PROPERTIES] = {NULL, };
    -G_DEFINE_TYPE(PurpleAuthorizationRequest, purple_authorization_request,
    - G_TYPE_OBJECT)
    +G_DEFINE_FINAL_TYPE(PurpleAuthorizationRequest, purple_authorization_request,
    + G_TYPE_OBJECT)
    /******************************************************************************
    * Helpers
    --- a/libpurple/purpleavatar.c Tue Jan 23 00:29:26 2024 -0600
    +++ b/libpurple/purpleavatar.c Tue Jan 23 00:31:44 2024 -0600
    @@ -42,7 +42,7 @@
    };
    static GParamSpec *properties[N_PROPERTIES] = {NULL, };
    -G_DEFINE_TYPE(PurpleAvatar, purple_avatar, G_TYPE_OBJECT)
    +G_DEFINE_FINAL_TYPE(PurpleAvatar, purple_avatar, G_TYPE_OBJECT)
    /******************************************************************************
    * Helpers
    --- a/libpurple/purplebuddypresence.c Tue Jan 23 00:29:26 2024 -0600
    +++ b/libpurple/purplebuddypresence.c Tue Jan 23 00:31:44 2024 -0600
    @@ -186,7 +186,8 @@
    /******************************************************************************
    * GObject Implementation
    *****************************************************************************/
    -G_DEFINE_TYPE(PurpleBuddyPresence, purple_buddy_presence, PURPLE_TYPE_PRESENCE)
    +G_DEFINE_FINAL_TYPE(PurpleBuddyPresence, purple_buddy_presence,
    + PURPLE_TYPE_PRESENCE)
    static void
    purple_buddy_presence_set_property(GObject *obj, guint param_id,
    --- a/libpurple/purplechanneljoindetails.c Tue Jan 23 00:29:26 2024 -0600
    +++ b/libpurple/purplechanneljoindetails.c Tue Jan 23 00:31:44 2024 -0600
    @@ -74,8 +74,8 @@
    /******************************************************************************
    * GObject Implementation
    *****************************************************************************/
    -G_DEFINE_TYPE(PurpleChannelJoinDetails, purple_channel_join_details,
    - G_TYPE_OBJECT)
    +G_DEFINE_FINAL_TYPE(PurpleChannelJoinDetails, purple_channel_join_details,
    + G_TYPE_OBJECT)
    static void
    purple_channel_join_details_finalize(GObject *obj) {
    --- a/libpurple/purplechatuser.c Tue Jan 23 00:29:26 2024 -0600
    +++ b/libpurple/purplechatuser.c Tue Jan 23 00:31:44 2024 -0600
    @@ -78,7 +78,7 @@
    /**************************************************************************
    * GObject Implementation
    **************************************************************************/
    -G_DEFINE_TYPE(PurpleChatUser, purple_chat_user, G_TYPE_OBJECT);
    +G_DEFINE_FINAL_TYPE(PurpleChatUser, purple_chat_user, G_TYPE_OBJECT)
    static void
    purple_chat_user_set_property(GObject *obj, guint param_id, const GValue *value,
    --- a/libpurple/purplecontact.c Tue Jan 23 00:29:26 2024 -0600
    +++ b/libpurple/purplecontact.c Tue Jan 23 00:31:44 2024 -0600
    @@ -33,7 +33,7 @@
    };
    static GParamSpec *properties[N_PROPERTIES] = {NULL, };
    -G_DEFINE_TYPE(PurpleContact, purple_contact, PURPLE_TYPE_CONTACT_INFO)
    +G_DEFINE_FINAL_TYPE(PurpleContact, purple_contact, PURPLE_TYPE_CONTACT_INFO)
    /******************************************************************************
    * Helpers
    --- a/libpurple/purpleconversationmanager.c Tue Jan 23 00:29:26 2024 -0600
    +++ b/libpurple/purpleconversationmanager.c Tue Jan 23 00:31:44 2024 -0600
    @@ -37,8 +37,8 @@
    static PurpleConversationManager *default_manager = NULL;
    -G_DEFINE_TYPE(PurpleConversationManager, purple_conversation_manager,
    - G_TYPE_OBJECT)
    +G_DEFINE_FINAL_TYPE(PurpleConversationManager, purple_conversation_manager,
    + G_TYPE_OBJECT)
    typedef gboolean (*PurpleConversationManagerCompareFunc)(PurpleConversation *conversation, gpointer userdata);
    --- a/libpurple/purpleconversationmember.c Tue Jan 23 00:29:26 2024 -0600
    +++ b/libpurple/purpleconversationmember.c Tue Jan 23 00:31:44 2024 -0600
    @@ -39,8 +39,8 @@
    };
    static GParamSpec *properties[N_PROPERTIES] = {NULL, };
    -G_DEFINE_TYPE(PurpleConversationMember, purple_conversation_member,
    - G_TYPE_OBJECT)
    +G_DEFINE_FINAL_TYPE(PurpleConversationMember, purple_conversation_member,
    + G_TYPE_OBJECT)
    /******************************************************************************
    * Helpers
    --- a/libpurple/purplecredentialmanager.c Tue Jan 23 00:29:26 2024 -0600
    +++ b/libpurple/purplecredentialmanager.c Tue Jan 23 00:31:44 2024 -0600
    @@ -44,8 +44,8 @@
    PurpleCredentialProvider *active;
    };
    -G_DEFINE_TYPE(PurpleCredentialManager, purple_credential_manager,
    - G_TYPE_OBJECT);
    +G_DEFINE_FINAL_TYPE(PurpleCredentialManager, purple_credential_manager,
    + G_TYPE_OBJECT);
    static PurpleCredentialManager *default_manager = NULL;
    --- a/libpurple/purplefiletransfer.c Tue Jan 23 00:29:26 2024 -0600
    +++ b/libpurple/purplefiletransfer.c Tue Jan 23 00:31:44 2024 -0600
    @@ -181,7 +181,7 @@
    /******************************************************************************
    * GObject Implementation
    *****************************************************************************/
    -G_DEFINE_TYPE(PurpleFileTransfer, purple_file_transfer, G_TYPE_OBJECT)
    +G_DEFINE_FINAL_TYPE(PurpleFileTransfer, purple_file_transfer, G_TYPE_OBJECT)
    static void
    purple_file_transfer_finalize(GObject *obj) {
    --- a/libpurple/purplehistorymanager.c Tue Jan 23 00:29:26 2024 -0600
    +++ b/libpurple/purplehistorymanager.c Tue Jan 23 00:31:44 2024 -0600
    @@ -41,7 +41,8 @@
    PurpleHistoryAdapter *active_adapter;
    };
    -G_DEFINE_TYPE(PurpleHistoryManager, purple_history_manager, G_TYPE_OBJECT);
    +G_DEFINE_FINAL_TYPE(PurpleHistoryManager, purple_history_manager,
    + G_TYPE_OBJECT)
    static PurpleHistoryManager *default_manager = NULL;
    --- a/libpurple/purpleidlemanager.c Tue Jan 23 00:29:26 2024 -0600
    +++ b/libpurple/purpleidlemanager.c Tue Jan 23 00:31:44 2024 -0600
    @@ -42,7 +42,7 @@
    /******************************************************************************
    * GObject Implementation
    *****************************************************************************/
    -G_DEFINE_TYPE(PurpleIdleManager, purple_idle_manager, G_TYPE_OBJECT)
    +G_DEFINE_FINAL_TYPE(PurpleIdleManager, purple_idle_manager, G_TYPE_OBJECT)
    static void
    purple_idle_manager_finalize(GObject *obj) {
    --- a/libpurple/purplemessage.c Tue Jan 23 00:29:26 2024 -0600
    +++ b/libpurple/purplemessage.c Tue Jan 23 00:31:44 2024 -0600
    @@ -70,7 +70,7 @@
    };
    static GParamSpec *properties[N_PROPERTIES];
    -G_DEFINE_TYPE(PurpleMessage, purple_message, G_TYPE_OBJECT)
    +G_DEFINE_FINAL_TYPE(PurpleMessage, purple_message, G_TYPE_OBJECT)
    /******************************************************************************
    * Helpers
    --- a/libpurple/purplenoopcredentialprovider.c Tue Jan 23 00:29:26 2024 -0600
    +++ b/libpurple/purplenoopcredentialprovider.c Tue Jan 23 00:31:44 2024 -0600
    @@ -26,8 +26,9 @@
    PurpleCredentialProvider parent;
    };
    -G_DEFINE_TYPE(PurpleNoopCredentialProvider, purple_noop_credential_provider,
    - PURPLE_TYPE_CREDENTIAL_PROVIDER)
    +G_DEFINE_FINAL_TYPE(PurpleNoopCredentialProvider,
    + purple_noop_credential_provider,
    + PURPLE_TYPE_CREDENTIAL_PROVIDER)
    /******************************************************************************
    * PurpleCredentialProvider Implementation
    --- a/libpurple/purplenotification.c Tue Jan 23 00:29:26 2024 -0600
    +++ b/libpurple/purplenotification.c Tue Jan 23 00:31:44 2024 -0600
    @@ -63,7 +63,7 @@
    };
    static GParamSpec *properties[N_PROPERTIES] = {NULL, };
    -G_DEFINE_TYPE(PurpleNotification, purple_notification, G_TYPE_OBJECT)
    +G_DEFINE_FINAL_TYPE(PurpleNotification, purple_notification, G_TYPE_OBJECT)
    /******************************************************************************
    * Helpers
    --- a/libpurple/purplenotificationmanager.c Tue Jan 23 00:29:26 2024 -0600
    +++ b/libpurple/purplenotificationmanager.c Tue Jan 23 00:31:44 2024 -0600
    @@ -148,9 +148,10 @@
    /******************************************************************************
    * GObject Implementation
    *****************************************************************************/
    -G_DEFINE_TYPE_EXTENDED(PurpleNotificationManager, purple_notification_manager,
    - G_TYPE_OBJECT, G_TYPE_FLAG_FINAL,
    - G_IMPLEMENT_INTERFACE(G_TYPE_LIST_MODEL, purple_notification_manager_list_model_init));
    +G_DEFINE_FINAL_TYPE_WITH_CODE(PurpleNotificationManager, purple_notification_manager,
    + G_TYPE_OBJECT,
    + G_IMPLEMENT_INTERFACE(G_TYPE_LIST_MODEL,
    + purple_notification_manager_list_model_init));
    static void
    --- a/libpurple/purpleperson.c Tue Jan 23 00:29:26 2024 -0600
    +++ b/libpurple/purpleperson.c Tue Jan 23 00:31:44 2024 -0600
    @@ -240,9 +240,9 @@
    /******************************************************************************
    * GObject Implementation
    *****************************************************************************/
    -G_DEFINE_TYPE_EXTENDED(PurplePerson, purple_person, G_TYPE_OBJECT, 0,
    - G_IMPLEMENT_INTERFACE(G_TYPE_LIST_MODEL,
    - purple_person_list_model_init))
    +G_DEFINE_FINAL_TYPE_WITH_CODE(PurplePerson, purple_person, G_TYPE_OBJECT,
    + G_IMPLEMENT_INTERFACE(G_TYPE_LIST_MODEL,
    + purple_person_list_model_init))
    static void
    purple_person_get_property(GObject *obj, guint param_id, GValue *value,
    --- a/libpurple/purplepresencemanager.c Tue Jan 23 00:29:26 2024 -0600
    +++ b/libpurple/purplepresencemanager.c Tue Jan 23 00:31:44 2024 -0600
    @@ -329,10 +329,10 @@
    /******************************************************************************
    * GObject Implementation
    *****************************************************************************/
    -G_DEFINE_TYPE_EXTENDED(PurplePresenceManager, purple_presence_manager,
    - G_TYPE_OBJECT, G_TYPE_FLAG_FINAL,
    - G_IMPLEMENT_INTERFACE(G_TYPE_LIST_MODEL,
    - purple_presence_manager_list_model_init))
    +G_DEFINE_FINAL_TYPE_WITH_CODE(PurplePresenceManager, purple_presence_manager,
    + G_TYPE_OBJECT,
    + G_IMPLEMENT_INTERFACE(G_TYPE_LIST_MODEL,
    + purple_presence_manager_list_model_init))
    static void
    purple_presence_manager_constructed(GObject *obj) {
    --- a/libpurple/purpleprotocolmanager.c Tue Jan 23 00:29:26 2024 -0600
    +++ b/libpurple/purpleprotocolmanager.c Tue Jan 23 00:31:44 2024 -0600
    @@ -90,10 +90,10 @@
    /******************************************************************************
    * GObject Implementation
    *****************************************************************************/
    -G_DEFINE_TYPE_WITH_CODE(PurpleProtocolManager, purple_protocol_manager,
    - G_TYPE_OBJECT,
    - G_IMPLEMENT_INTERFACE(G_TYPE_LIST_MODEL,
    - purple_protocol_manager_list_model_iface_init));
    +G_DEFINE_FINAL_TYPE_WITH_CODE(PurpleProtocolManager, purple_protocol_manager,
    + G_TYPE_OBJECT,
    + G_IMPLEMENT_INTERFACE(G_TYPE_LIST_MODEL,
    + purple_protocol_manager_list_model_iface_init));
    static void
    purple_protocol_manager_finalize(GObject *obj) {
    --- a/libpurple/purpleproxyinfo.c Tue Jan 23 00:29:26 2024 -0600
    +++ b/libpurple/purpleproxyinfo.c Tue Jan 23 00:31:44 2024 -0600
    @@ -41,7 +41,7 @@
    };
    static GParamSpec *properties[N_PROPERTIES] = {NULL, };
    -G_DEFINE_TYPE(PurpleProxyInfo, purple_proxy_info, G_TYPE_OBJECT)
    +G_DEFINE_FINAL_TYPE(PurpleProxyInfo, purple_proxy_info, G_TYPE_OBJECT)
    /******************************************************************************
    * GObject Implementation
    --- a/libpurple/purplesavedpresence.c Tue Jan 23 00:29:26 2024 -0600
    +++ b/libpurple/purplesavedpresence.c Tue Jan 23 00:31:44 2024 -0600
    @@ -56,7 +56,7 @@
    };
    static GParamSpec *properties[N_PROPERTIES];
    -G_DEFINE_TYPE(PurpleSavedPresence, purple_saved_presence, G_TYPE_OBJECT)
    +G_DEFINE_FINAL_TYPE(PurpleSavedPresence, purple_saved_presence, G_TYPE_OBJECT)
    /******************************************************************************
    * Helpers
    --- a/libpurple/purplesqlitehistoryadapter.c Tue Jan 23 00:29:26 2024 -0600
    +++ b/libpurple/purplesqlitehistoryadapter.c Tue Jan 23 00:31:44 2024 -0600
    @@ -40,8 +40,8 @@
    };
    static GParamSpec *properties[N_PROPERTIES] = {NULL, };
    -G_DEFINE_TYPE(PurpleSqliteHistoryAdapter, purple_sqlite_history_adapter,
    - PURPLE_TYPE_HISTORY_ADAPTER)
    +G_DEFINE_FINAL_TYPE(PurpleSqliteHistoryAdapter, purple_sqlite_history_adapter,
    + PURPLE_TYPE_HISTORY_ADAPTER)
    /******************************************************************************
    * Helpers
    --- a/libpurple/purpletags.c Tue Jan 23 00:29:26 2024 -0600
    +++ b/libpurple/purpletags.c Tue Jan 23 00:31:44 2024 -0600
    @@ -37,7 +37,7 @@
    GList *tags;
    };
    -G_DEFINE_TYPE(PurpleTags, purple_tags, G_TYPE_OBJECT)
    +G_DEFINE_FINAL_TYPE(PurpleTags, purple_tags, G_TYPE_OBJECT)
    /******************************************************************************
    * Helpers
    --- a/libpurple/purplewhiteboardmanager.c Tue Jan 23 00:29:26 2024 -0600
    +++ b/libpurple/purplewhiteboardmanager.c Tue Jan 23 00:31:44 2024 -0600
    @@ -74,9 +74,11 @@
    /******************************************************************************
    * GObject Implementation
    *****************************************************************************/
    -G_DEFINE_TYPE_EXTENDED(PurpleWhiteboardManager, purple_whiteboard_manager,
    - G_TYPE_OBJECT, G_TYPE_FLAG_FINAL,
    - G_IMPLEMENT_INTERFACE(G_TYPE_LIST_MODEL, purple_whiteboard_manager_list_model_init));
    +G_DEFINE_FINAL_TYPE_WITH_CODE(PurpleWhiteboardManager,
    + purple_whiteboard_manager,
    + G_TYPE_OBJECT,
    + G_IMPLEMENT_INTERFACE(G_TYPE_LIST_MODEL,
    + purple_whiteboard_manager_list_model_init))
    static void
    purple_whiteboard_manager_finalize(GObject *obj) {
    --- a/libpurple/request/purplerequestfieldaccount.c Tue Jan 23 00:29:26 2024 -0600
    +++ b/libpurple/request/purplerequestfieldaccount.c Tue Jan 23 00:31:44 2024 -0600
    @@ -48,8 +48,8 @@
    /******************************************************************************
    * GObject Implementation
    *****************************************************************************/
    -G_DEFINE_TYPE(PurpleRequestFieldAccount, purple_request_field_account,
    - PURPLE_TYPE_REQUEST_FIELD)
    +G_DEFINE_FINAL_TYPE(PurpleRequestFieldAccount, purple_request_field_account,
    + PURPLE_TYPE_REQUEST_FIELD)
    static void
    purple_request_field_account_get_property(GObject *obj, guint param_id,
    --- a/libpurple/request/purplerequestfieldbool.c Tue Jan 23 00:29:26 2024 -0600
    +++ b/libpurple/request/purplerequestfieldbool.c Tue Jan 23 00:31:44 2024 -0600
    @@ -43,8 +43,8 @@
    /******************************************************************************
    * GObject Implementation
    *****************************************************************************/
    -G_DEFINE_TYPE(PurpleRequestFieldBool, purple_request_field_bool,
    - PURPLE_TYPE_REQUEST_FIELD)
    +G_DEFINE_FINAL_TYPE(PurpleRequestFieldBool, purple_request_field_bool,
    + PURPLE_TYPE_REQUEST_FIELD)
    static void
    purple_request_field_bool_get_property(GObject *obj, guint param_id,
    --- a/libpurple/request/purplerequestfieldchoice.c Tue Jan 23 00:29:26 2024 -0600
    +++ b/libpurple/request/purplerequestfieldchoice.c Tue Jan 23 00:31:44 2024 -0600
    @@ -46,8 +46,8 @@
    /******************************************************************************
    * GObject Implementation
    *****************************************************************************/
    -G_DEFINE_TYPE(PurpleRequestFieldChoice, purple_request_field_choice,
    - PURPLE_TYPE_REQUEST_FIELD)
    +G_DEFINE_FINAL_TYPE(PurpleRequestFieldChoice, purple_request_field_choice,
    + PURPLE_TYPE_REQUEST_FIELD)
    static void
    purple_request_field_choice_get_property(GObject *obj, guint param_id,
    --- a/libpurple/request/purplerequestfielddatasheet.c Tue Jan 23 00:29:26 2024 -0600
    +++ b/libpurple/request/purplerequestfielddatasheet.c Tue Jan 23 00:31:44 2024 -0600
    @@ -54,8 +54,9 @@
    /******************************************************************************
    * GObject Implementation
    *****************************************************************************/
    -G_DEFINE_TYPE(PurpleRequestFieldDatasheet, purple_request_field_datasheet,
    - PURPLE_TYPE_REQUEST_FIELD)
    +G_DEFINE_FINAL_TYPE(PurpleRequestFieldDatasheet,
    + purple_request_field_datasheet,
    + PURPLE_TYPE_REQUEST_FIELD)
    static void
    purple_request_field_datasheet_get_property(GObject *obj, guint param_id,
    --- a/libpurple/request/purplerequestfieldimage.c Tue Jan 23 00:29:26 2024 -0600
    +++ b/libpurple/request/purplerequestfieldimage.c Tue Jan 23 00:31:44 2024 -0600
    @@ -47,8 +47,8 @@
    /******************************************************************************
    * GObject Implementation
    *****************************************************************************/
    -G_DEFINE_TYPE(PurpleRequestFieldImage, purple_request_field_image,
    - PURPLE_TYPE_REQUEST_FIELD)
    +G_DEFINE_FINAL_TYPE(PurpleRequestFieldImage, purple_request_field_image,
    + PURPLE_TYPE_REQUEST_FIELD)
    static void
    purple_request_field_image_get_property(GObject *obj, guint param_id,
    --- a/libpurple/request/purplerequestfieldint.c Tue Jan 23 00:29:26 2024 -0600
    +++ b/libpurple/request/purplerequestfieldint.c Tue Jan 23 00:31:44 2024 -0600
    @@ -73,8 +73,8 @@
    /******************************************************************************
    * GObject Implementation
    *****************************************************************************/
    -G_DEFINE_TYPE(PurpleRequestFieldInt, purple_request_field_int,
    - PURPLE_TYPE_REQUEST_FIELD)
    +G_DEFINE_FINAL_TYPE(PurpleRequestFieldInt, purple_request_field_int,
    + PURPLE_TYPE_REQUEST_FIELD)
    static void
    purple_request_field_int_get_property(GObject *obj, guint param_id,
    --- a/libpurple/request/purplerequestfieldlabel.c Tue Jan 23 00:29:26 2024 -0600
    +++ b/libpurple/request/purplerequestfieldlabel.c Tue Jan 23 00:31:44 2024 -0600
    @@ -32,8 +32,8 @@
    /******************************************************************************
    * GObject Implementation
    *****************************************************************************/
    -G_DEFINE_TYPE(PurpleRequestFieldLabel, purple_request_field_label,
    - PURPLE_TYPE_REQUEST_FIELD)
    +G_DEFINE_FINAL_TYPE(PurpleRequestFieldLabel, purple_request_field_label,
    + PURPLE_TYPE_REQUEST_FIELD)
    static void
    purple_request_field_label_init(G_GNUC_UNUSED PurpleRequestFieldLabel *field) {
    --- a/libpurple/request/purplerequestfieldlist.c Tue Jan 23 00:29:26 2024 -0600
    +++ b/libpurple/request/purplerequestfieldlist.c Tue Jan 23 00:31:44 2024 -0600
    @@ -48,8 +48,8 @@
    /******************************************************************************
    * GObject Implementation
    *****************************************************************************/
    -G_DEFINE_TYPE(PurpleRequestFieldList, purple_request_field_list,
    - PURPLE_TYPE_REQUEST_FIELD)
    +G_DEFINE_FINAL_TYPE(PurpleRequestFieldList, purple_request_field_list,
    + PURPLE_TYPE_REQUEST_FIELD)
    static void
    purple_request_field_list_get_property(GObject *obj, guint param_id, GValue *value,
    --- a/libpurple/request/purplerequestfieldstring.c Tue Jan 23 00:29:26 2024 -0600
    +++ b/libpurple/request/purplerequestfieldstring.c Tue Jan 23 00:31:44 2024 -0600
    @@ -69,8 +69,8 @@
    /******************************************************************************
    * GObject Implementation
    *****************************************************************************/
    -G_DEFINE_TYPE(PurpleRequestFieldString, purple_request_field_string,
    - PURPLE_TYPE_REQUEST_FIELD)
    +G_DEFINE_FINAL_TYPE(PurpleRequestFieldString, purple_request_field_string,
    + PURPLE_TYPE_REQUEST_FIELD)
    static void
    purple_request_field_string_get_property(GObject *obj, guint param_id,
    --- a/libpurple/request/purplerequestgroup.c Tue Jan 23 00:29:26 2024 -0600
    +++ b/libpurple/request/purplerequestgroup.c Tue Jan 23 00:31:44 2024 -0600
    @@ -115,9 +115,9 @@
    /******************************************************************************
    * GObject Implementation
    *****************************************************************************/
    -G_DEFINE_TYPE_WITH_CODE(PurpleRequestGroup, purple_request_group, G_TYPE_OBJECT,
    - G_IMPLEMENT_INTERFACE(G_TYPE_LIST_MODEL,
    - purple_request_group_list_model_init))
    +G_DEFINE_FINAL_TYPE_WITH_CODE(PurpleRequestGroup, purple_request_group, G_TYPE_OBJECT,
    + G_IMPLEMENT_INTERFACE(G_TYPE_LIST_MODEL,
    + purple_request_group_list_model_init))
    static void
    purple_request_group_get_property(GObject *obj, guint param_id, GValue *value,
    --- a/libpurple/request/purplerequestpage.c Tue Jan 23 00:29:26 2024 -0600
    +++ b/libpurple/request/purplerequestpage.c Tue Jan 23 00:31:44 2024 -0600
    @@ -129,9 +129,9 @@
    /******************************************************************************
    * GObject Implementation
    *****************************************************************************/
    -G_DEFINE_TYPE_WITH_CODE(PurpleRequestPage, purple_request_page, G_TYPE_OBJECT,
    - G_IMPLEMENT_INTERFACE(G_TYPE_LIST_MODEL,
    - purple_request_page_list_model_init))
    +G_DEFINE_FINAL_TYPE_WITH_CODE(PurpleRequestPage, purple_request_page, G_TYPE_OBJECT,
    + G_IMPLEMENT_INTERFACE(G_TYPE_LIST_MODEL,
    + purple_request_page_list_model_init))
    static void
    purple_request_page_get_property(GObject *obj, guint param_id, GValue *value,
    --- a/libpurple/roomlist.c Tue Jan 23 00:29:26 2024 -0600
    +++ b/libpurple/roomlist.c Tue Jan 23 00:31:44 2024 -0600
    @@ -49,7 +49,8 @@
    static GParamSpec *properties[PROP_LAST];
    static PurpleRoomlistUiOps *ops = NULL;
    -G_DEFINE_TYPE_WITH_PRIVATE(PurpleRoomlist, purple_roomlist, G_TYPE_OBJECT);
    +G_DEFINE_FINAL_TYPE_WITH_PRIVATE(PurpleRoomlist, purple_roomlist,
    + G_TYPE_OBJECT)
    /**************************************************************************/
    /* Room List API */
    --- a/libpurple/status.c Tue Jan 23 00:29:26 2024 -0600
    +++ b/libpurple/status.c Tue Jan 23 00:31:44 2024 -0600
    @@ -92,7 +92,7 @@
    static GParamSpec *properties[PROP_LAST];
    -G_DEFINE_TYPE(PurpleStatus, purple_status, G_TYPE_OBJECT);
    +G_DEFINE_FINAL_TYPE(PurpleStatus, purple_status, G_TYPE_OBJECT)
    static int primitive_scores[] =
    {
    --- a/libpurple/tests/test_credential_manager.c Tue Jan 23 00:29:26 2024 -0600
    +++ b/libpurple/tests/test_credential_manager.c Tue Jan 23 00:31:44 2024 -0600
    @@ -55,9 +55,9 @@
    PurpleCredentialProvider parent;
    };
    -G_DEFINE_TYPE(TestPurpleCredentialProvider,
    - test_purple_credential_provider,
    - PURPLE_TYPE_CREDENTIAL_PROVIDER)
    +G_DEFINE_FINAL_TYPE(TestPurpleCredentialProvider,
    + test_purple_credential_provider,
    + PURPLE_TYPE_CREDENTIAL_PROVIDER)
    static void
    test_purple_credential_provider_read_password_async(PurpleCredentialProvider *p,
    --- a/libpurple/tests/test_credential_provider.c Tue Jan 23 00:29:26 2024 -0600
    +++ b/libpurple/tests/test_credential_provider.c Tue Jan 23 00:31:44 2024 -0600
    @@ -43,9 +43,9 @@
    PurpleCredentialProvider parent;
    };
    -G_DEFINE_TYPE(TestPurpleCredentialProviderEmpty,
    - test_purple_credential_provider_empty,
    - PURPLE_TYPE_CREDENTIAL_PROVIDER)
    +G_DEFINE_FINAL_TYPE(TestPurpleCredentialProviderEmpty,
    + test_purple_credential_provider_empty,
    + PURPLE_TYPE_CREDENTIAL_PROVIDER)
    static void
    test_purple_credential_provider_empty_read_password_async(G_GNUC_UNUSED PurpleCredentialProvider *provider,
    @@ -224,9 +224,9 @@
    gboolean clear_password_finish;
    };
    -G_DEFINE_TYPE(TestPurpleCredentialProvider,
    - test_purple_credential_provider,
    - PURPLE_TYPE_CREDENTIAL_PROVIDER)
    +G_DEFINE_FINAL_TYPE(TestPurpleCredentialProvider,
    + test_purple_credential_provider,
    + PURPLE_TYPE_CREDENTIAL_PROVIDER)
    static void
    test_purple_credential_provider_read_password_async(PurpleCredentialProvider *p,
    --- a/libpurple/tests/test_history_adapter.c Tue Jan 23 00:29:26 2024 -0600
    +++ b/libpurple/tests/test_history_adapter.c Tue Jan 23 00:31:44 2024 -0600
    @@ -46,9 +46,9 @@
    gboolean write;
    };
    -G_DEFINE_TYPE(TestPurpleHistoryAdapter,
    - test_purple_history_adapter,
    - PURPLE_TYPE_HISTORY_ADAPTER)
    +G_DEFINE_FINAL_TYPE(TestPurpleHistoryAdapter,
    + test_purple_history_adapter,
    + PURPLE_TYPE_HISTORY_ADAPTER)
    static gboolean
    test_purple_history_adapter_activate(PurpleHistoryAdapter *a,
    --- a/libpurple/tests/test_history_manager.c Tue Jan 23 00:29:26 2024 -0600
    +++ b/libpurple/tests/test_history_manager.c Tue Jan 23 00:31:44 2024 -0600
    @@ -46,9 +46,9 @@
    gboolean write_called;
    };
    -G_DEFINE_TYPE(TestPurpleHistoryAdapter,
    - test_purple_history_adapter,
    - PURPLE_TYPE_HISTORY_ADAPTER)
    +G_DEFINE_FINAL_TYPE(TestPurpleHistoryAdapter,
    + test_purple_history_adapter,
    + PURPLE_TYPE_HISTORY_ADAPTER)
    static gboolean
    test_purple_history_adapter_activate(PurpleHistoryAdapter *a,
    --- a/libpurple/tests/test_protocol.c Tue Jan 23 00:29:26 2024 -0600
    +++ b/libpurple/tests/test_protocol.c Tue Jan 23 00:31:44 2024 -0600
    @@ -52,7 +52,8 @@
    gboolean can_connect_finish;
    };
    -G_DEFINE_TYPE(TestPurpleProtocol, test_purple_protocol, PURPLE_TYPE_PROTOCOL)
    +G_DEFINE_FINAL_TYPE(TestPurpleProtocol, test_purple_protocol,
    + PURPLE_TYPE_PROTOCOL)
    static void
    test_purple_protocol_can_connect_async(PurpleProtocol *protocol,
    --- a/libpurple/tests/test_protocol_contacts.c Tue Jan 23 00:29:26 2024 -0600
    +++ b/libpurple/tests/test_protocol_contacts.c Tue Jan 23 00:31:44 2024 -0600
    @@ -65,11 +65,11 @@
    {
    }
    -G_DEFINE_TYPE_WITH_CODE(TestPurpleProtocolContactsEmpty,
    - test_purple_protocol_contacts_empty,
    - PURPLE_TYPE_PROTOCOL,
    - G_IMPLEMENT_INTERFACE(PURPLE_TYPE_PROTOCOL_CONTACTS,
    - test_purple_protocol_contacts_empty_iface_init))
    +G_DEFINE_FINAL_TYPE_WITH_CODE(TestPurpleProtocolContactsEmpty,
    + test_purple_protocol_contacts_empty,
    + PURPLE_TYPE_PROTOCOL,
    + G_IMPLEMENT_INTERFACE(PURPLE_TYPE_PROTOCOL_CONTACTS,
    + test_purple_protocol_contacts_empty_iface_init))
    static void
    test_purple_protocol_contacts_empty_init(G_GNUC_UNUSED TestPurpleProtocolContactsEmpty *empty)
    @@ -335,10 +335,10 @@
    iface->get_menu = test_purple_protocol_contacts_get_menu;
    }
    -G_DEFINE_TYPE_WITH_CODE(TestPurpleProtocolContacts, test_purple_protocol_contacts,
    - PURPLE_TYPE_PROTOCOL,
    - G_IMPLEMENT_INTERFACE(PURPLE_TYPE_PROTOCOL_CONTACTS,
    - test_purple_protocol_contacts_iface_init))
    +G_DEFINE_FINAL_TYPE_WITH_CODE(TestPurpleProtocolContacts, test_purple_protocol_contacts,
    + PURPLE_TYPE_PROTOCOL,
    + G_IMPLEMENT_INTERFACE(PURPLE_TYPE_PROTOCOL_CONTACTS,
    + test_purple_protocol_contacts_iface_init))
    static void
    test_purple_protocol_contacts_init(TestPurpleProtocolContacts *protocol_contacts)
    --- a/libpurple/tests/test_protocol_conversation.c Tue Jan 23 00:29:26 2024 -0600
    +++ b/libpurple/tests/test_protocol_conversation.c Tue Jan 23 00:31:44 2024 -0600
    @@ -67,11 +67,11 @@
    {
    }
    -G_DEFINE_TYPE_WITH_CODE(TestPurpleProtocolConversationEmpty,
    - test_purple_protocol_conversation_empty,
    - PURPLE_TYPE_PROTOCOL,
    - G_IMPLEMENT_INTERFACE(PURPLE_TYPE_PROTOCOL_CONVERSATION,
    - test_purple_protocol_conversation_empty_iface_init))
    +G_DEFINE_FINAL_TYPE_WITH_CODE(TestPurpleProtocolConversationEmpty,
    + test_purple_protocol_conversation_empty,
    + PURPLE_TYPE_PROTOCOL,
    + G_IMPLEMENT_INTERFACE(PURPLE_TYPE_PROTOCOL_CONVERSATION,
    + test_purple_protocol_conversation_empty_iface_init))
    static void
    test_purple_protocol_conversation_empty_init(G_GNUC_UNUSED TestPurpleProtocolConversationEmpty *empty)
    @@ -606,10 +606,11 @@
    iface->send_typing = test_purple_protocol_conversation_send_typing;
    }
    -G_DEFINE_TYPE_WITH_CODE(TestPurpleProtocolConversation, test_purple_protocol_conversation,
    - PURPLE_TYPE_PROTOCOL,
    - G_IMPLEMENT_INTERFACE(PURPLE_TYPE_PROTOCOL_CONVERSATION,
    - test_purple_protocol_conversation_iface_init))
    +G_DEFINE_FINAL_TYPE_WITH_CODE(TestPurpleProtocolConversation,
    + test_purple_protocol_conversation,
    + PURPLE_TYPE_PROTOCOL,
    + G_IMPLEMENT_INTERFACE(PURPLE_TYPE_PROTOCOL_CONVERSATION,
    + test_purple_protocol_conversation_iface_init))
    static void
    test_purple_protocol_conversation_init(TestPurpleProtocolConversation *protocol)
    --- a/libpurple/tests/test_protocol_file_transfer.c Tue Jan 23 00:29:26 2024 -0600
    +++ b/libpurple/tests/test_protocol_file_transfer.c Tue Jan 23 00:31:44 2024 -0600
    @@ -65,11 +65,11 @@
    {
    }
    -G_DEFINE_TYPE_WITH_CODE(TestPurpleProtocolFileTransferEmpty,
    - test_purple_protocol_file_transfer_empty,
    - PURPLE_TYPE_PROTOCOL,
    - G_IMPLEMENT_INTERFACE(PURPLE_TYPE_PROTOCOL_FILE_TRANSFER,
    - test_purple_protocol_file_transfer_empty_iface_init))
    +G_DEFINE_FINAL_TYPE_WITH_CODE(TestPurpleProtocolFileTransferEmpty,
    + test_purple_protocol_file_transfer_empty,
    + PURPLE_TYPE_PROTOCOL,
    + G_IMPLEMENT_INTERFACE(PURPLE_TYPE_PROTOCOL_FILE_TRANSFER,
    + test_purple_protocol_file_transfer_empty_iface_init))
    static void
    test_purple_protocol_file_transfer_empty_init(G_GNUC_UNUSED TestPurpleProtocolFileTransferEmpty *empty)
    @@ -306,10 +306,11 @@
    iface->receive_finish = test_purple_protocol_file_transfer_receive_finish;
    }
    -G_DEFINE_TYPE_WITH_CODE(TestPurpleProtocolFileTransfer, test_purple_protocol_file_transfer,
    - PURPLE_TYPE_PROTOCOL,
    - G_IMPLEMENT_INTERFACE(PURPLE_TYPE_PROTOCOL_FILE_TRANSFER,
    - test_purple_protocol_file_transfer_iface_init))
    +G_DEFINE_FINAL_TYPE_WITH_CODE(TestPurpleProtocolFileTransfer,
    + test_purple_protocol_file_transfer,
    + PURPLE_TYPE_PROTOCOL,
    + G_IMPLEMENT_INTERFACE(PURPLE_TYPE_PROTOCOL_FILE_TRANSFER,
    + test_purple_protocol_file_transfer_iface_init))
    static void
    test_purple_protocol_file_transfer_init(TestPurpleProtocolFileTransfer *protocol_file_transfer)
    --- a/libpurple/tests/test_protocol_roster.c Tue Jan 23 00:29:26 2024 -0600
    +++ b/libpurple/tests/test_protocol_roster.c Tue Jan 23 00:31:44 2024 -0600
    @@ -65,11 +65,11 @@
    {
    }
    -G_DEFINE_TYPE_WITH_CODE(TestPurpleProtocolRosterEmpty,
    - test_purple_protocol_roster_empty,
    - PURPLE_TYPE_PROTOCOL,
    - G_IMPLEMENT_INTERFACE(PURPLE_TYPE_PROTOCOL_ROSTER,
    - test_purple_protocol_roster_empty_iface_init))
    +G_DEFINE_FINAL_TYPE_WITH_CODE(TestPurpleProtocolRosterEmpty,
    + test_purple_protocol_roster_empty,
    + PURPLE_TYPE_PROTOCOL,
    + G_IMPLEMENT_INTERFACE(PURPLE_TYPE_PROTOCOL_ROSTER,
    + test_purple_protocol_roster_empty_iface_init))
    static void
    test_purple_protocol_roster_empty_init(G_GNUC_UNUSED TestPurpleProtocolRosterEmpty *empty)
    @@ -296,10 +296,11 @@
    iface->remove_finish = test_purple_protocol_roster_remove_finish;
    }
    -G_DEFINE_TYPE_WITH_CODE(TestPurpleProtocolRoster, test_purple_protocol_roster,
    - PURPLE_TYPE_PROTOCOL,
    - G_IMPLEMENT_INTERFACE(PURPLE_TYPE_PROTOCOL_ROSTER,
    - test_purple_protocol_roster_iface_init))
    +G_DEFINE_FINAL_TYPE_WITH_CODE(TestPurpleProtocolRoster,
    + test_purple_protocol_roster,
    + PURPLE_TYPE_PROTOCOL,
    + G_IMPLEMENT_INTERFACE(PURPLE_TYPE_PROTOCOL_ROSTER,
    + test_purple_protocol_roster_iface_init))
    static void
    test_purple_protocol_roster_init(G_GNUC_UNUSED TestPurpleProtocolRoster *roster)
    --- a/libpurple/tests/test_ui.c Tue Jan 23 00:29:26 2024 -0600
    +++ b/libpurple/tests/test_ui.c Tue Jan 23 00:31:44 2024 -0600
    @@ -68,7 +68,7 @@
    G_DECLARE_FINAL_TYPE(TestPurpleUi, test_purple_ui, TEST_PURPLE, UI, PurpleUi)
    -G_DEFINE_TYPE(TestPurpleUi, test_purple_ui, PURPLE_TYPE_UI)
    +G_DEFINE_FINAL_TYPE(TestPurpleUi, test_purple_ui, PURPLE_TYPE_UI)
    static gboolean
    test_purple_ui_start(G_GNUC_UNUSED PurpleUi *ui, G_GNUC_UNUSED GError **error) {