Thu, 01 Nov 2018 15:45:13 -0500
libpurple: Port self-contained code from g_type_class_add_private()
This patch ports the self-contained libpurple GObjects away from the
deprecated g_type_class_add_private() function in favor of the
G_DEFINE_TYPE_WITH_PRIVATE() macro.
| libpurple/blistnode.c | file | annotate | diff | comparison | revisions | |
| libpurple/buddylist.c | file | annotate | diff | comparison | revisions | |
| libpurple/chat.c | file | annotate | diff | comparison | revisions | |
| libpurple/contact.c | file | annotate | diff | comparison | revisions | |
| libpurple/countingnode.c | file | annotate | diff | comparison | revisions | |
| libpurple/group.c | file | annotate | diff | comparison | revisions | |
| libpurple/memorypool.c | file | annotate | diff | comparison | revisions | |
| libpurple/roomlist.c | file | annotate | diff | comparison | revisions | |
| libpurple/sound-theme.c | file | annotate | diff | comparison | revisions | |
| libpurple/theme-loader.c | file | annotate | diff | comparison | revisions | |
| libpurple/theme.c | file | annotate | diff | comparison | revisions | |
| libpurple/trie.c | file | annotate | diff | comparison | revisions |
--- a/libpurple/blistnode.c Tue Dec 04 03:27:04 2018 +0000 +++ b/libpurple/blistnode.c Thu Nov 01 15:45:13 2018 -0500 @@ -23,9 +23,6 @@ #include "internal.h" #include "glibcompat.h" -#define PURPLE_BLIST_NODE_GET_PRIVATE(obj) \ - (G_TYPE_INSTANCE_GET_PRIVATE((obj), PURPLE_TYPE_BLIST_NODE, PurpleBlistNodePrivate)) - typedef struct _PurpleBlistNodePrivate PurpleBlistNodePrivate; /* Private data of a buddy list node */ @@ -42,9 +39,10 @@ BLNODE_PROP_LAST }; -static GObjectClass *parent_class; +static GParamSpec *bn_properties[BLNODE_PROP_LAST]; -static GParamSpec *bn_properties[BLNODE_PROP_LAST]; +G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE(PurpleBlistNode, purple_blist_node, + G_TYPE_OBJECT); /**************************************************************************/ /* Buddy list node API */ @@ -117,7 +115,8 @@ void purple_blist_node_remove_setting(PurpleBlistNode *node, const char *key) { PurpleBlistUiOps *ops; - PurpleBlistNodePrivate *priv = PURPLE_BLIST_NODE_GET_PRIVATE(node); + PurpleBlistNodePrivate *priv = + purple_blist_node_get_instance_private(node); g_return_if_fail(priv != NULL); g_return_if_fail(priv->settings != NULL); @@ -133,7 +132,8 @@ void purple_blist_node_set_transient(PurpleBlistNode *node, gboolean transient) { - PurpleBlistNodePrivate *priv = PURPLE_BLIST_NODE_GET_PRIVATE(node); + PurpleBlistNodePrivate *priv = + purple_blist_node_get_instance_private(node); g_return_if_fail(priv != NULL); @@ -146,7 +146,8 @@ gboolean purple_blist_node_is_transient(PurpleBlistNode *node) { - PurpleBlistNodePrivate *priv = PURPLE_BLIST_NODE_GET_PRIVATE(node); + PurpleBlistNodePrivate *priv = + purple_blist_node_get_instance_private(node); g_return_val_if_fail(priv != NULL, 0); @@ -156,7 +157,8 @@ GHashTable * purple_blist_node_get_settings(PurpleBlistNode *node) { - PurpleBlistNodePrivate *priv = PURPLE_BLIST_NODE_GET_PRIVATE(node); + PurpleBlistNodePrivate *priv = + purple_blist_node_get_instance_private(node); g_return_val_if_fail(priv != NULL, NULL); @@ -166,7 +168,8 @@ gboolean purple_blist_node_has_setting(PurpleBlistNode* node, const char *key) { - PurpleBlistNodePrivate *priv = PURPLE_BLIST_NODE_GET_PRIVATE(node); + PurpleBlistNodePrivate *priv = + purple_blist_node_get_instance_private(node); g_return_val_if_fail(priv != NULL, FALSE); g_return_val_if_fail(priv->settings != NULL, FALSE); @@ -181,7 +184,8 @@ { GValue *value; PurpleBlistUiOps *ops; - PurpleBlistNodePrivate *priv = PURPLE_BLIST_NODE_GET_PRIVATE(node); + PurpleBlistNodePrivate *priv = + purple_blist_node_get_instance_private(node); g_return_if_fail(priv != NULL); g_return_if_fail(priv->settings != NULL); @@ -201,7 +205,8 @@ purple_blist_node_get_bool(PurpleBlistNode* node, const char *key) { GValue *value; - PurpleBlistNodePrivate *priv = PURPLE_BLIST_NODE_GET_PRIVATE(node); + PurpleBlistNodePrivate *priv = + purple_blist_node_get_instance_private(node); g_return_val_if_fail(priv != NULL, FALSE); g_return_val_if_fail(priv->settings != NULL, FALSE); @@ -222,7 +227,8 @@ { GValue *value; PurpleBlistUiOps *ops; - PurpleBlistNodePrivate *priv = PURPLE_BLIST_NODE_GET_PRIVATE(node); + PurpleBlistNodePrivate *priv = + purple_blist_node_get_instance_private(node); g_return_if_fail(priv != NULL); g_return_if_fail(priv->settings != NULL); @@ -242,7 +248,8 @@ purple_blist_node_get_int(PurpleBlistNode* node, const char *key) { GValue *value; - PurpleBlistNodePrivate *priv = PURPLE_BLIST_NODE_GET_PRIVATE(node); + PurpleBlistNodePrivate *priv = + purple_blist_node_get_instance_private(node); g_return_val_if_fail(priv != NULL, 0); g_return_val_if_fail(priv->settings != NULL, 0); @@ -263,7 +270,8 @@ { GValue *value; PurpleBlistUiOps *ops; - PurpleBlistNodePrivate *priv = PURPLE_BLIST_NODE_GET_PRIVATE(node); + PurpleBlistNodePrivate *priv = + purple_blist_node_get_instance_private(node); g_return_if_fail(priv != NULL); g_return_if_fail(priv->settings != NULL); @@ -283,7 +291,8 @@ purple_blist_node_get_string(PurpleBlistNode* node, const char *key) { GValue *value; - PurpleBlistNodePrivate *priv = PURPLE_BLIST_NODE_GET_PRIVATE(node); + PurpleBlistNodePrivate *priv = + purple_blist_node_get_instance_private(node); g_return_val_if_fail(priv != NULL, NULL); g_return_val_if_fail(priv->settings != NULL, NULL); @@ -351,9 +360,10 @@ /* GObject initialization function */ static void -purple_blist_node_init(GTypeInstance *instance, gpointer klass) +purple_blist_node_init(PurpleBlistNode *node) { - PurpleBlistNodePrivate *priv = PURPLE_BLIST_NODE_GET_PRIVATE(instance); + PurpleBlistNodePrivate *priv = + purple_blist_node_get_instance_private(node); priv->settings = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, (GDestroyNotify)purple_value_free); @@ -363,11 +373,12 @@ static void purple_blist_node_finalize(GObject *object) { - PurpleBlistNodePrivate *priv = PURPLE_BLIST_NODE_GET_PRIVATE(object); + PurpleBlistNodePrivate *priv = purple_blist_node_get_instance_private( + PURPLE_BLIST_NODE(object)); g_hash_table_destroy(priv->settings); - parent_class->finalize(object); + G_OBJECT_CLASS(purple_blist_node_parent_class)->finalize(object); } /* Class initializer function */ @@ -376,16 +387,12 @@ { GObjectClass *obj_class = G_OBJECT_CLASS(klass); - parent_class = g_type_class_peek_parent(klass); - obj_class->finalize = purple_blist_node_finalize; /* Setup properties */ obj_class->get_property = purple_blist_node_get_property; obj_class->set_property = purple_blist_node_set_property; - g_type_class_add_private(klass, sizeof(PurpleBlistNodePrivate)); - bn_properties[BLNODE_PROP_TRANSIENT] = g_param_spec_boolean("transient", "Transient", "Whether node should not be saved with the buddy list.", @@ -395,29 +402,3 @@ bn_properties); } -GType -purple_blist_node_get_type(void) -{ - static GType type = 0; - - if(type == 0) { - static const GTypeInfo info = { - sizeof(PurpleBlistNodeClass), - NULL, - NULL, - (GClassInitFunc)purple_blist_node_class_init, - NULL, - NULL, - sizeof(PurpleBlistNode), - 0, - (GInstanceInitFunc)purple_blist_node_init, - NULL, - }; - - type = g_type_register_static(G_TYPE_OBJECT, "PurpleBlistNode", - &info, G_TYPE_FLAG_ABSTRACT); - } - - return type; -} -
--- a/libpurple/buddylist.c Tue Dec 04 03:27:04 2018 +0000 +++ b/libpurple/buddylist.c Thu Nov 01 15:45:13 2018 -0500 @@ -33,9 +33,6 @@ #include "util.h" #include "xmlnode.h" -#define PURPLE_BUDDY_LIST_GET_PRIVATE(obj) \ - (G_TYPE_INSTANCE_GET_PRIVATE((obj), PURPLE_TYPE_BUDDY_LIST, PurpleBuddyListPrivate)) - /* Private data for a buddy list. */ typedef struct { GHashTable *buddies; /* Every buddy in this list */ @@ -45,7 +42,7 @@ static PurpleBuddyList *purplebuddylist = NULL; -static GObjectClass *parent_class; +G_DEFINE_TYPE_WITH_PRIVATE(PurpleBuddyList, purple_buddy_list, G_TYPE_OBJECT); /* * A hash table used for efficient lookups of buddies by name. @@ -759,13 +756,14 @@ GSList * purple_blist_get_buddies() { + PurpleBuddyListPrivate *priv; GSList *buddies = NULL; if (!purplebuddylist) return NULL; - g_hash_table_foreach(PURPLE_BUDDY_LIST_GET_PRIVATE(purplebuddylist)->buddies, - append_buddy, &buddies); + priv = purple_buddy_list_get_instance_private(purplebuddylist); + g_hash_table_foreach(priv->buddies, append_buddy, &buddies); return buddies; } @@ -803,7 +801,8 @@ GHashTable *account_buddies; PurpleAccount *account; gchar *name; - PurpleBuddyListPrivate *priv = PURPLE_BUDDY_LIST_GET_PRIVATE(purplebuddylist); + PurpleBuddyListPrivate *priv = + purple_buddy_list_get_instance_private(purplebuddylist); g_return_if_fail(PURPLE_IS_BUDDY(buddy)); @@ -941,7 +940,8 @@ PurpleBlistUiOps *ops = purple_blist_get_ui_ops(); struct _purple_hbuddy *hb, *hb2; GHashTable *account_buddies; - PurpleBuddyListPrivate *priv = PURPLE_BUDDY_LIST_GET_PRIVATE(purplebuddylist); + PurpleBuddyListPrivate *priv = + purple_buddy_list_get_instance_private(purplebuddylist); g_return_if_fail(PURPLE_IS_BUDDY(buddy)); @@ -1097,7 +1097,8 @@ PurpleGroup *g; PurpleBlistNode *gnode, *cnode, *bnode; PurpleCountingNode *contact_counter, *group_counter; - PurpleBuddyListPrivate *priv = PURPLE_BUDDY_LIST_GET_PRIVATE(purplebuddylist); + PurpleBuddyListPrivate *priv = + purple_buddy_list_get_instance_private(purplebuddylist); g_return_if_fail(PURPLE_IS_CONTACT(contact)); @@ -1359,6 +1360,8 @@ void purple_blist_remove_buddy(PurpleBuddy *buddy) { + PurpleBuddyListPrivate *priv = + purple_buddy_list_get_instance_private(purplebuddylist); PurpleBlistUiOps *ops = purple_blist_get_ui_ops(); PurpleBlistNode *node, *cnode, *gnode; PurpleCountingNode *contact_counter, *group_counter; @@ -1415,7 +1418,7 @@ hb.name = (gchar *)purple_normalize(account, purple_buddy_get_name(buddy)); hb.account = account; hb.group = gnode; - g_hash_table_remove(PURPLE_BUDDY_LIST_GET_PRIVATE(purplebuddylist)->buddies, &hb); + g_hash_table_remove(priv->buddies, &hb); account_buddies = g_hash_table_lookup(buddies_cache, account); g_hash_table_remove(account_buddies, &hb); @@ -1542,6 +1545,8 @@ PurpleBuddy *purple_blist_find_buddy(PurpleAccount *account, const char *name) { + PurpleBuddyListPrivate *priv = + purple_buddy_list_get_instance_private(purplebuddylist); PurpleBuddy *buddy; struct _purple_hbuddy hb; PurpleBlistNode *group; @@ -1558,8 +1563,7 @@ continue; hb.group = group; - if ((buddy = g_hash_table_lookup(PURPLE_BUDDY_LIST_GET_PRIVATE(purplebuddylist)->buddies, - &hb))) { + if ((buddy = g_hash_table_lookup(priv->buddies, &hb))) { return buddy; } } @@ -1570,6 +1574,8 @@ PurpleBuddy *purple_blist_find_buddy_in_group(PurpleAccount *account, const char *name, PurpleGroup *group) { + PurpleBuddyListPrivate *priv = + purple_buddy_list_get_instance_private(purplebuddylist); struct _purple_hbuddy hb; g_return_val_if_fail(PURPLE_IS_BUDDY_LIST(purplebuddylist), NULL); @@ -1580,8 +1586,7 @@ hb.account = account; hb.group = (PurpleBlistNode*)group; - return g_hash_table_lookup(PURPLE_BUDDY_LIST_GET_PRIVATE(purplebuddylist)->buddies, - &hb); + return g_hash_table_lookup(priv->buddies, &hb); } static void find_acct_buddies(gpointer key, gpointer value, gpointer data) @@ -1594,6 +1599,8 @@ GSList *purple_blist_find_buddies(PurpleAccount *account, const char *name) { + PurpleBuddyListPrivate *priv = + purple_buddy_list_get_instance_private(purplebuddylist); PurpleBuddy *buddy; PurpleBlistNode *node; GSList *ret = NULL; @@ -1612,7 +1619,7 @@ continue; hb.group = node; - if ((buddy = g_hash_table_lookup(PURPLE_BUDDY_LIST_GET_PRIVATE(purplebuddylist)->buddies, + if ((buddy = g_hash_table_lookup(priv->buddies, &hb)) != NULL) ret = g_slist_prepend(ret, buddy); } @@ -2114,11 +2121,12 @@ /* GObject initialization function */ static void -purple_buddy_list_init(GTypeInstance *instance, gpointer klass) +purple_buddy_list_init(PurpleBuddyList *blist) { - PurpleBuddyList *blist = PURPLE_BUDDY_LIST(instance); + PurpleBuddyListPrivate *priv = + purple_buddy_list_get_instance_private(blist); - PURPLE_BUDDY_LIST_GET_PRIVATE(blist)->buddies = g_hash_table_new_full( + priv->buddies = g_hash_table_new_full( (GHashFunc)_purple_blist_hbuddy_hash, (GEqualFunc)_purple_blist_hbuddy_equal, (GDestroyNotify)_purple_blist_hbuddy_free_key, NULL); @@ -2128,9 +2136,11 @@ static void purple_buddy_list_finalize(GObject *object) { - g_hash_table_destroy(PURPLE_BUDDY_LIST_GET_PRIVATE(object)->buddies); + PurpleBuddyListPrivate *priv = purple_buddy_list_get_instance_private( + PURPLE_BUDDY_LIST(object)); + g_hash_table_destroy(priv->buddies); - G_OBJECT_CLASS(parent_class)->finalize(object); + G_OBJECT_CLASS(purple_buddy_list_parent_class)->finalize(object); } /* Class initializer function */ @@ -2138,35 +2148,6 @@ { GObjectClass *obj_class = G_OBJECT_CLASS(klass); - parent_class = g_type_class_peek_parent(klass); - obj_class->finalize = purple_buddy_list_finalize; - - g_type_class_add_private(klass, sizeof(PurpleBuddyListPrivate)); } -GType -purple_buddy_list_get_type(void) -{ - static GType type = 0; - - if(type == 0) { - static const GTypeInfo info = { - sizeof(PurpleBuddyListClass), - NULL, - NULL, - (GClassInitFunc)purple_buddy_list_class_init, - NULL, - NULL, - sizeof(PurpleBuddyList), - 0, - (GInstanceInitFunc)purple_buddy_list_init, - NULL, - }; - - type = g_type_register_static(G_TYPE_OBJECT, - "PurpleBuddyList", &info, 0); - } - - return type; -}
--- a/libpurple/chat.c Tue Dec 04 03:27:04 2018 +0000 +++ b/libpurple/chat.c Thu Nov 01 15:45:13 2018 -0500 @@ -24,9 +24,6 @@ #include "chat.h" #include "util.h" -#define PURPLE_CHAT_GET_PRIVATE(obj) \ - (G_TYPE_INSTANCE_GET_PRIVATE((obj), PURPLE_TYPE_CHAT, PurpleChatPrivate)) - typedef struct _PurpleChatPrivate PurpleChatPrivate; /* Private data for a chat node */ @@ -53,16 +50,17 @@ /****************************************************************************** * Globals *****************************************************************************/ -static PurpleBlistNode *blistnode_parent_class; static GParamSpec *properties[PROP_LAST]; +G_DEFINE_TYPE_WITH_PRIVATE(PurpleChat, purple_chat, PURPLE_TYPE_BLIST_NODE); + /****************************************************************************** * API *****************************************************************************/ const char *purple_chat_get_name(PurpleChat *chat) { - PurpleChatPrivate *priv = PURPLE_CHAT_GET_PRIVATE(chat); + PurpleChatPrivate *priv = purple_chat_get_instance_private(chat); g_return_val_if_fail(priv != NULL, NULL); @@ -76,7 +74,7 @@ { char *ret = NULL; PurpleProtocol *protocol = NULL; - PurpleChatPrivate *priv = PURPLE_CHAT_GET_PRIVATE(chat); + PurpleChatPrivate *priv = purple_chat_get_instance_private(chat); g_return_val_if_fail(priv != NULL, NULL); @@ -100,7 +98,7 @@ PurpleBlistUiOps *ops = purple_blist_get_ui_ops(); char *old_alias; char *new_alias = NULL; - PurpleChatPrivate *priv = PURPLE_CHAT_GET_PRIVATE(chat); + PurpleChatPrivate *priv = purple_chat_get_instance_private(chat); g_return_if_fail(priv != NULL); @@ -146,7 +144,7 @@ PurpleAccount * purple_chat_get_account(PurpleChat *chat) { - PurpleChatPrivate *priv = PURPLE_CHAT_GET_PRIVATE(chat); + PurpleChatPrivate *priv = purple_chat_get_instance_private(chat); g_return_val_if_fail(priv != NULL, NULL); @@ -156,7 +154,7 @@ GHashTable * purple_chat_get_components(PurpleChat *chat) { - PurpleChatPrivate *priv = PURPLE_CHAT_GET_PRIVATE(chat); + PurpleChatPrivate *priv = purple_chat_get_instance_private(chat); g_return_val_if_fail(priv != NULL, NULL); @@ -171,7 +169,7 @@ GParamSpec *pspec) { PurpleChat *chat = PURPLE_CHAT(obj); - PurpleChatPrivate *priv = PURPLE_CHAT_GET_PRIVATE(chat); + PurpleChatPrivate *priv = purple_chat_get_instance_private(chat); switch (param_id) { case PROP_ALIAS: @@ -198,7 +196,7 @@ GParamSpec *pspec) { PurpleChat *chat = PURPLE_CHAT(obj); - PurpleChatPrivate *priv = PURPLE_CHAT_GET_PRIVATE(chat); + PurpleChatPrivate *priv = purple_chat_get_instance_private(chat); switch (param_id) { case PROP_ALIAS: @@ -218,7 +216,7 @@ /* GObject initialization function */ static void -purple_chat_init(GTypeInstance *instance, gpointer klass) +purple_chat_init(PurpleChat *chat) { } @@ -227,10 +225,10 @@ purple_chat_constructed(GObject *object) { PurpleChat *chat = PURPLE_CHAT(object); - PurpleChatPrivate *priv = PURPLE_CHAT_GET_PRIVATE(chat); + PurpleChatPrivate *priv = purple_chat_get_instance_private(chat); PurpleBlistUiOps *ops = purple_blist_get_ui_ops(); - G_OBJECT_CLASS(blistnode_parent_class)->constructed(object); + G_OBJECT_CLASS(purple_chat_parent_class)->constructed(object); if (ops != NULL && ops->new_node != NULL) ops->new_node(PURPLE_BLIST_NODE(chat)); @@ -242,12 +240,13 @@ static void purple_chat_finalize(GObject *object) { - PurpleChatPrivate *priv = PURPLE_CHAT_GET_PRIVATE(object); + PurpleChatPrivate *priv = + purple_chat_get_instance_private(PURPLE_CHAT(object)); g_free(priv->alias); g_hash_table_destroy(priv->components); - G_OBJECT_CLASS(blistnode_parent_class)->finalize(object); + G_OBJECT_CLASS(purple_chat_parent_class)->finalize(object); } /* Class initializer function */ @@ -255,8 +254,6 @@ { GObjectClass *obj_class = G_OBJECT_CLASS(klass); - blistnode_parent_class = g_type_class_peek_parent(klass); - obj_class->finalize = purple_chat_finalize; /* Setup properties */ @@ -264,8 +261,6 @@ obj_class->set_property = purple_chat_set_property; obj_class->constructed = purple_chat_constructed; - g_type_class_add_private(klass, sizeof(PurpleChatPrivate)); - properties[PROP_ALIAS] = g_param_spec_string( "alias", "Alias", @@ -292,33 +287,6 @@ g_object_class_install_properties(obj_class, PROP_LAST, properties); } -GType -purple_chat_get_type(void) -{ - static GType type = 0; - - if(type == 0) { - static const GTypeInfo info = { - sizeof(PurpleChatClass), - NULL, - NULL, - (GClassInitFunc)purple_chat_class_init, - NULL, - NULL, - sizeof(PurpleChat), - 0, - (GInstanceInitFunc)purple_chat_init, - NULL, - }; - - type = g_type_register_static(PURPLE_TYPE_BLIST_NODE, - "PurpleChat", - &info, 0); - } - - return type; -} - PurpleChat * purple_chat_new(PurpleAccount *account, const char *alias, GHashTable *components) {
--- a/libpurple/contact.c Tue Dec 04 03:27:04 2018 +0000 +++ b/libpurple/contact.c Thu Nov 01 15:45:13 2018 -0500 @@ -25,9 +25,6 @@ #include "internal.h" /* TODO: this needs to die */ #include "util.h" -#define PURPLE_CONTACT_GET_PRIVATE(obj) \ - (G_TYPE_INSTANCE_GET_PRIVATE((obj), PURPLE_TYPE_CONTACT, PurpleContactPrivate)) - typedef struct _PurpleContactPrivate PurpleContactPrivate; struct _PurpleContactPrivate { @@ -47,9 +44,11 @@ /****************************************************************************** * Globals *****************************************************************************/ -static GObjectClass *parent_class = NULL; static GParamSpec *properties[PROP_LAST]; +G_DEFINE_TYPE_WITH_PRIVATE(PurpleContact, purple_contact, + PURPLE_TYPE_COUNTING_NODE); + /****************************************************************************** * API *****************************************************************************/ @@ -57,7 +56,8 @@ purple_contact_compute_priority_buddy(PurpleContact *contact) { PurpleBlistNode *bnode; PurpleBuddy *new_priority = NULL; - PurpleContactPrivate *priv = PURPLE_CONTACT_GET_PRIVATE(contact); + PurpleContactPrivate *priv = + purple_contact_get_instance_private(contact); g_return_if_fail(priv != NULL); @@ -117,7 +117,8 @@ PurpleBlistNode *bnode; char *old_alias; char *new_alias = NULL; - PurpleContactPrivate *priv = PURPLE_CONTACT_GET_PRIVATE(contact); + PurpleContactPrivate *priv = + purple_contact_get_instance_private(contact); g_return_if_fail(priv != NULL); @@ -165,7 +166,8 @@ const char *purple_contact_get_alias(PurpleContact* contact) { - PurpleContactPrivate *priv = PURPLE_CONTACT_GET_PRIVATE(contact); + PurpleContactPrivate *priv = + purple_contact_get_instance_private(contact); g_return_val_if_fail(priv != NULL, NULL); @@ -197,7 +199,8 @@ void purple_contact_invalidate_priority_buddy(PurpleContact *contact) { - PurpleContactPrivate *priv = PURPLE_CONTACT_GET_PRIVATE(contact); + PurpleContactPrivate *priv = + purple_contact_get_instance_private(contact); g_return_if_fail(priv != NULL); @@ -206,7 +209,8 @@ PurpleBuddy *purple_contact_get_priority_buddy(PurpleContact *contact) { - PurpleContactPrivate *priv = PURPLE_CONTACT_GET_PRIVATE(contact); + PurpleContactPrivate *priv = + purple_contact_get_instance_private(contact); g_return_val_if_fail(priv != NULL, NULL); @@ -276,7 +280,8 @@ GParamSpec *pspec) { PurpleContact *contact = PURPLE_CONTACT(obj); - PurpleContactPrivate *priv = PURPLE_CONTACT_GET_PRIVATE(contact); + PurpleContactPrivate *priv = + purple_contact_get_instance_private(contact); switch (param_id) { case PROP_ALIAS: @@ -293,9 +298,8 @@ /* GObject initialization function */ static void -purple_contact_init(GTypeInstance *instance, gpointer klass) +purple_contact_init(PurpleContact *contact) { - PurpleContact *contact = PURPLE_CONTACT(instance); PurpleBlistUiOps *ops = purple_blist_get_ui_ops(); if (ops && ops->new_node) @@ -306,9 +310,12 @@ static void purple_contact_finalize(GObject *object) { - g_free(PURPLE_CONTACT_GET_PRIVATE(object)->alias); + PurpleContactPrivate *priv = purple_contact_get_instance_private( + PURPLE_CONTACT(object)); - G_OBJECT_CLASS(parent_class)->finalize(object); + g_free(priv->alias); + + G_OBJECT_CLASS(purple_contact_parent_class)->finalize(object); } /* Class initializer function */ @@ -316,16 +323,12 @@ { GObjectClass *obj_class = G_OBJECT_CLASS(klass); - parent_class = g_type_class_peek_parent(klass); - obj_class->finalize = purple_contact_finalize; /* Setup properties */ obj_class->get_property = purple_contact_get_property; obj_class->set_property = purple_contact_set_property; - g_type_class_add_private(klass, sizeof(PurpleContactPrivate)); - properties[PROP_ALIAS] = g_param_spec_string( "alias", "Alias", @@ -345,36 +348,6 @@ g_object_class_install_properties(obj_class, PROP_LAST, properties); } -GType -purple_contact_get_type(void) -{ - static GType type = 0; - - if(type == 0) { - static const GTypeInfo info = { - sizeof(PurpleContactClass), - NULL, - NULL, - (GClassInitFunc)purple_contact_class_init, - NULL, - NULL, - sizeof(PurpleContact), - 0, - (GInstanceInitFunc)purple_contact_init, - NULL, - }; - - type = g_type_register_static( - PURPLE_TYPE_COUNTING_NODE, - "PurpleContact", - &info, - 0 - ); - } - - return type; -} - PurpleContact * purple_contact_new(void) {
--- a/libpurple/countingnode.c Tue Dec 04 03:27:04 2018 +0000 +++ b/libpurple/countingnode.c Thu Nov 01 15:45:13 2018 -0500 @@ -24,9 +24,6 @@ #include "glibcompat.h" #include "countingnode.h" -#define PURPLE_COUNTING_NODE_GET_PRIVATE(obj) \ - (G_TYPE_INSTANCE_GET_PRIVATE((obj), PURPLE_TYPE_COUNTING_NODE, PurpleCountingNodePrivate)) - typedef struct _PurpleCountingNodePrivate PurpleCountingNodePrivate; /* Private data of a counting node */ @@ -50,13 +47,17 @@ static GParamSpec *properties[PROP_LAST]; +G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE(PurpleCountingNode, purple_counting_node, + PURPLE_TYPE_BLIST_NODE); + /****************************************************************************** * API *****************************************************************************/ int purple_counting_node_get_total_size(PurpleCountingNode *counter) { - PurpleCountingNodePrivate *priv = PURPLE_COUNTING_NODE_GET_PRIVATE(counter); + PurpleCountingNodePrivate *priv = + purple_counting_node_get_instance_private(counter); g_return_val_if_fail(priv != NULL, -1); @@ -66,7 +67,8 @@ int purple_counting_node_get_current_size(PurpleCountingNode *counter) { - PurpleCountingNodePrivate *priv = PURPLE_COUNTING_NODE_GET_PRIVATE(counter); + PurpleCountingNodePrivate *priv = + purple_counting_node_get_instance_private(counter); g_return_val_if_fail(priv != NULL, -1); @@ -76,7 +78,8 @@ int purple_counting_node_get_online_count(PurpleCountingNode *counter) { - PurpleCountingNodePrivate *priv = PURPLE_COUNTING_NODE_GET_PRIVATE(counter); + PurpleCountingNodePrivate *priv = + purple_counting_node_get_instance_private(counter); g_return_val_if_fail(priv != NULL, -1); @@ -86,7 +89,8 @@ void purple_counting_node_change_total_size(PurpleCountingNode *counter, int delta) { - PurpleCountingNodePrivate *priv = PURPLE_COUNTING_NODE_GET_PRIVATE(counter); + PurpleCountingNodePrivate *priv = + purple_counting_node_get_instance_private(counter); g_return_if_fail(priv != NULL); @@ -96,7 +100,8 @@ void purple_counting_node_change_current_size(PurpleCountingNode *counter, int delta) { - PurpleCountingNodePrivate *priv = PURPLE_COUNTING_NODE_GET_PRIVATE(counter); + PurpleCountingNodePrivate *priv = + purple_counting_node_get_instance_private(counter); g_return_if_fail(priv != NULL); @@ -106,7 +111,8 @@ void purple_counting_node_change_online_count(PurpleCountingNode *counter, int delta) { - PurpleCountingNodePrivate *priv = PURPLE_COUNTING_NODE_GET_PRIVATE(counter); + PurpleCountingNodePrivate *priv = + purple_counting_node_get_instance_private(counter); g_return_if_fail(priv != NULL); @@ -116,7 +122,8 @@ void purple_counting_node_set_total_size(PurpleCountingNode *counter, int totalsize) { - PurpleCountingNodePrivate *priv = PURPLE_COUNTING_NODE_GET_PRIVATE(counter); + PurpleCountingNodePrivate *priv = + purple_counting_node_get_instance_private(counter); g_return_if_fail(priv != NULL); @@ -128,7 +135,8 @@ void purple_counting_node_set_current_size(PurpleCountingNode *counter, int currentsize) { - PurpleCountingNodePrivate *priv = PURPLE_COUNTING_NODE_GET_PRIVATE(counter); + PurpleCountingNodePrivate *priv = + purple_counting_node_get_instance_private(counter); g_return_if_fail(priv != NULL); @@ -140,7 +148,8 @@ void purple_counting_node_set_online_count(PurpleCountingNode *counter, int onlinecount) { - PurpleCountingNodePrivate *priv = PURPLE_COUNTING_NODE_GET_PRIVATE(counter); + PurpleCountingNodePrivate *priv = + purple_counting_node_get_instance_private(counter); g_return_if_fail(priv != NULL); @@ -198,6 +207,11 @@ } } +static void +purple_counting_node_init(PurpleCountingNode *counter) +{ +} + /* Class initializer function */ static void purple_counting_node_class_init(PurpleCountingNodeClass *klass) @@ -208,8 +222,6 @@ obj_class->get_property = purple_counting_node_get_property; obj_class->set_property = purple_counting_node_set_property; - g_type_class_add_private(klass, sizeof(PurpleCountingNodePrivate)); - properties[PROP_TOTAL_SIZE] = g_param_spec_int( "total-size", "Total size", @@ -237,29 +249,3 @@ g_object_class_install_properties(obj_class, PROP_LAST, properties); } -GType -purple_counting_node_get_type(void) -{ - static GType type = 0; - - if(type == 0) { - static const GTypeInfo info = { - sizeof(PurpleCountingNodeClass), - NULL, - NULL, - (GClassInitFunc)purple_counting_node_class_init, - NULL, - NULL, - sizeof(PurpleCountingNode), - 0, - NULL, - NULL, - }; - - type = g_type_register_static(PURPLE_TYPE_BLIST_NODE, - "PurpleCountingNode", - &info, G_TYPE_FLAG_ABSTRACT); - } - - return type; -}
--- a/libpurple/group.c Tue Dec 04 03:27:04 2018 +0000 +++ b/libpurple/group.c Thu Nov 01 15:45:13 2018 -0500 @@ -24,9 +24,6 @@ #include "group.h" #include "internal.h" /* TODO: we need to kill this */ -#define PURPLE_GROUP_GET_PRIVATE(obj) \ - (G_TYPE_INSTANCE_GET_PRIVATE((obj), PURPLE_TYPE_GROUP, PurpleGroupPrivate)) - typedef struct _PurpleGroupPrivate PurpleGroupPrivate; /****************************************************************************** @@ -50,7 +47,9 @@ * Globals *****************************************************************************/ static GParamSpec *properties[GROUP_PROP_LAST]; -static GObjectClass *parent_class = NULL; + +G_DEFINE_TYPE_WITH_PRIVATE(PurpleGroup, purple_group, + PURPLE_TYPE_COUNTING_NODE); /****************************************************************************** * Group API @@ -104,7 +103,7 @@ gchar *new_name; GList *moved_buddies = NULL; GSList *accts; - PurpleGroupPrivate *priv = PURPLE_GROUP_GET_PRIVATE(source); + PurpleGroupPrivate *priv = purple_group_get_instance_private(source); g_return_if_fail(priv != NULL); g_return_if_fail(name != NULL); @@ -118,7 +117,7 @@ dest = purple_blist_find_group(new_name); if (dest != NULL && purple_utf8_strcasecmp(priv->name, - PURPLE_GROUP_GET_PRIVATE(dest)->name) != 0) { + purple_group_get_name(dest)) != 0) { /* We're merging two groups */ PurpleBlistNode *prev, *child, *next; @@ -235,7 +234,7 @@ } const char *purple_group_get_name(PurpleGroup *group) { - PurpleGroupPrivate *priv = PURPLE_GROUP_GET_PRIVATE(group); + PurpleGroupPrivate *priv = purple_group_get_instance_private(group); g_return_val_if_fail(priv != NULL, NULL); @@ -251,7 +250,7 @@ GParamSpec *pspec) { PurpleGroup *group = PURPLE_GROUP(obj); - PurpleGroupPrivate *priv = PURPLE_GROUP_GET_PRIVATE(group); + PurpleGroupPrivate *priv = purple_group_get_instance_private(group); switch (param_id) { case GROUP_PROP_NAME: @@ -286,17 +285,17 @@ /* GObject initialization function */ static void -purple_group_init(GTypeInstance *instance, gpointer klass) { +purple_group_init(PurpleGroup *group) { } /* Called when done constructing */ static void purple_group_constructed(GObject *object) { PurpleGroup *group = PURPLE_GROUP(object); - PurpleGroupPrivate *priv = PURPLE_GROUP_GET_PRIVATE(group); + PurpleGroupPrivate *priv = purple_group_get_instance_private(group); PurpleBlistUiOps *ops = purple_blist_get_ui_ops(); - G_OBJECT_CLASS(parent_class)->constructed(object); + G_OBJECT_CLASS(purple_group_parent_class)->constructed(object); if (ops && ops->new_node) ops->new_node(PURPLE_BLIST_NODE(group)); @@ -307,9 +306,12 @@ /* GObject finalize function */ static void purple_group_finalize(GObject *object) { - g_free(PURPLE_GROUP_GET_PRIVATE(object)->name); + PurpleGroupPrivate *priv = purple_group_get_instance_private( + PURPLE_GROUP(object)); - G_OBJECT_CLASS(parent_class)->finalize(object); + g_free(priv->name); + + G_OBJECT_CLASS(purple_group_parent_class)->finalize(object); } /* Class initializer function */ @@ -317,8 +319,6 @@ purple_group_class_init(PurpleGroupClass *klass) { GObjectClass *obj_class = G_OBJECT_CLASS(klass); - parent_class = g_type_class_peek_parent(klass); - obj_class->finalize = purple_group_finalize; obj_class->constructed = purple_group_constructed; @@ -326,8 +326,6 @@ obj_class->get_property = purple_group_get_property; obj_class->set_property = purple_group_set_property; - g_type_class_add_private(klass, sizeof(PurpleGroupPrivate)); - properties[GROUP_PROP_NAME] = g_param_spec_string( "name", "Name", @@ -339,32 +337,6 @@ g_object_class_install_properties(obj_class, GROUP_PROP_LAST, properties); } -GType -purple_group_get_type(void) { - static GType type = 0; - - if(type == 0) { - static const GTypeInfo info = { - sizeof(PurpleGroupClass), - NULL, - NULL, - (GClassInitFunc)purple_group_class_init, - NULL, - NULL, - sizeof(PurpleGroup), - 0, - (GInstanceInitFunc)purple_group_init, - NULL, - }; - - type = g_type_register_static(PURPLE_TYPE_COUNTING_NODE, - "PurpleGroup", - &info, 0); - } - - return type; -} - PurpleGroup * purple_group_new(const char *name) { PurpleGroup *group;
--- a/libpurple/memorypool.c Tue Dec 04 03:27:04 2018 +0000 +++ b/libpurple/memorypool.c Thu Nov 01 15:45:13 2018 -0500 @@ -24,8 +24,6 @@ #include <string.h> -#define PURPLE_MEMORY_POOL_GET_PRIVATE(obj) \ - (G_TYPE_INSTANCE_GET_PRIVATE((obj), PURPLE_TYPE_MEMORY_POOL, PurpleMemoryPoolPrivate)) #define PURPLE_MEMORY_POOL_BLOCK_PADDING (sizeof(guint64)) #define PURPLE_MEMORY_POINTER_SHIFT(pointer, value) \ (gpointer)((guintptr)(pointer) + (value)) @@ -60,9 +58,10 @@ PROP_LAST }; -static GObjectClass *parent_class = NULL; static GParamSpec *properties[PROP_LAST]; +G_DEFINE_TYPE_WITH_PRIVATE(PurpleMemoryPool, purple_memory_pool, + G_TYPE_OBJECT); /******************************************************************************* * Memory allocation/deallocation @@ -100,7 +99,8 @@ static gpointer purple_memory_pool_alloc_impl(PurpleMemoryPool *pool, gsize size, guint alignment) { - PurpleMemoryPoolPrivate *priv = PURPLE_MEMORY_POOL_GET_PRIVATE(pool); + PurpleMemoryPoolPrivate *priv = + purple_memory_pool_get_instance_private(pool); PurpleMemoryPoolBlock *blk; gpointer mem = NULL; @@ -163,7 +163,8 @@ static void purple_memory_pool_cleanup_impl(PurpleMemoryPool *pool) { - PurpleMemoryPoolPrivate *priv = PURPLE_MEMORY_POOL_GET_PRIVATE(pool); + PurpleMemoryPoolPrivate *priv = + purple_memory_pool_get_instance_private(pool); PurpleMemoryPoolBlock *blk; g_return_if_fail(priv != NULL); @@ -186,7 +187,8 @@ void purple_memory_pool_set_block_size(PurpleMemoryPool *pool, gulong block_size) { - PurpleMemoryPoolPrivate *priv = PURPLE_MEMORY_POOL_GET_PRIVATE(pool); + PurpleMemoryPoolPrivate *priv = + purple_memory_pool_get_instance_private(pool); g_return_if_fail(priv != NULL); @@ -269,10 +271,10 @@ } static void -purple_memory_pool_init(GTypeInstance *instance, gpointer klass) +purple_memory_pool_init(PurpleMemoryPool *pool) { - PurpleMemoryPool *pool = PURPLE_MEMORY_POOL(instance); - PurpleMemoryPoolPrivate *priv = PURPLE_MEMORY_POOL_GET_PRIVATE(pool); + PurpleMemoryPoolPrivate *priv = + purple_memory_pool_get_instance_private(pool); priv->disabled = PURPLE_MEMORY_POOL_DISABLED; } @@ -282,7 +284,7 @@ { purple_memory_pool_cleanup(PURPLE_MEMORY_POOL(obj)); - G_OBJECT_CLASS(parent_class)->finalize(obj); + G_OBJECT_CLASS(purple_memory_pool_parent_class)->finalize(obj); } static void @@ -290,7 +292,8 @@ GParamSpec *pspec) { PurpleMemoryPool *pool = PURPLE_MEMORY_POOL(obj); - PurpleMemoryPoolPrivate *priv = PURPLE_MEMORY_POOL_GET_PRIVATE(pool); + PurpleMemoryPoolPrivate *priv = + purple_memory_pool_get_instance_private(pool); switch (param_id) { case PROP_BLOCK_SIZE: @@ -306,7 +309,8 @@ const GValue *value, GParamSpec *pspec) { PurpleMemoryPool *pool = PURPLE_MEMORY_POOL(obj); - PurpleMemoryPoolPrivate *priv = PURPLE_MEMORY_POOL_GET_PRIVATE(pool); + PurpleMemoryPoolPrivate *priv = + purple_memory_pool_get_instance_private(pool); switch (param_id) { case PROP_BLOCK_SIZE: @@ -322,10 +326,6 @@ { GObjectClass *obj_class = G_OBJECT_CLASS(klass); - parent_class = g_type_class_peek_parent(klass); - - g_type_class_add_private(klass, sizeof(PurpleMemoryPoolPrivate)); - obj_class->finalize = purple_memory_pool_finalize; obj_class->get_property = purple_memory_pool_get_property; obj_class->set_property = purple_memory_pool_set_property; @@ -341,26 +341,6 @@ g_object_class_install_properties(obj_class, PROP_LAST, properties); } -GType -purple_memory_pool_get_type(void) -{ - static GType type = 0; - - if (G_UNLIKELY(type == 0)) { - static const GTypeInfo info = { - .class_size = sizeof(PurpleMemoryPoolClass), - .class_init = (GClassInitFunc)purple_memory_pool_class_init, - .instance_size = sizeof(PurpleMemoryPool), - .instance_init = (GInstanceInitFunc)purple_memory_pool_init - }; - - type = g_type_register_static(G_TYPE_OBJECT, - "PurpleMemoryPool", &info, 0); - } - - return type; -} - gchar * purple_memory_pool_strdup(PurpleMemoryPool *pool, const gchar *str) {
--- a/libpurple/roomlist.c Tue Dec 04 03:27:04 2018 +0000 +++ b/libpurple/roomlist.c Thu Nov 01 15:45:13 2018 -0500 @@ -28,9 +28,6 @@ #include "roomlist.h" #include "server.h" -#define PURPLE_ROOMLIST_GET_PRIVATE(obj) \ - (G_TYPE_INSTANCE_GET_PRIVATE((obj), PURPLE_TYPE_ROOMLIST, PurpleRoomlistPrivate)) - typedef struct _PurpleRoomlistPrivate PurpleRoomlistPrivate; /* @@ -77,10 +74,11 @@ PROP_LAST }; -static GObjectClass *parent_class; static GParamSpec *properties[PROP_LAST]; static PurpleRoomlistUiOps *ops = NULL; +G_DEFINE_TYPE_WITH_PRIVATE(PurpleRoomlist, purple_roomlist, G_TYPE_OBJECT); + static void purple_roomlist_field_free(PurpleRoomlistField *f); static void purple_roomlist_room_destroy(PurpleRoomlist *list, PurpleRoomlistRoom *r); @@ -96,7 +94,8 @@ PurpleAccount *purple_roomlist_get_account(PurpleRoomlist *list) { - PurpleRoomlistPrivate *priv = PURPLE_ROOMLIST_GET_PRIVATE(list); + PurpleRoomlistPrivate *priv = + purple_roomlist_get_instance_private(list); g_return_val_if_fail(priv != NULL, NULL); @@ -105,7 +104,8 @@ void purple_roomlist_set_fields(PurpleRoomlist *list, GList *fields) { - PurpleRoomlistPrivate *priv = PURPLE_ROOMLIST_GET_PRIVATE(list); + PurpleRoomlistPrivate *priv = + purple_roomlist_get_instance_private(list); g_return_if_fail(priv != NULL); @@ -119,7 +119,8 @@ void purple_roomlist_set_in_progress(PurpleRoomlist *list, gboolean in_progress) { - PurpleRoomlistPrivate *priv = PURPLE_ROOMLIST_GET_PRIVATE(list); + PurpleRoomlistPrivate *priv = + purple_roomlist_get_instance_private(list); g_return_if_fail(priv != NULL); @@ -133,7 +134,8 @@ gboolean purple_roomlist_get_in_progress(PurpleRoomlist *list) { - PurpleRoomlistPrivate *priv = PURPLE_ROOMLIST_GET_PRIVATE(list); + PurpleRoomlistPrivate *priv = + purple_roomlist_get_instance_private(list); g_return_val_if_fail(priv != NULL, FALSE); @@ -142,7 +144,8 @@ void purple_roomlist_room_add(PurpleRoomlist *list, PurpleRoomlistRoom *room) { - PurpleRoomlistPrivate *priv = PURPLE_ROOMLIST_GET_PRIVATE(list); + PurpleRoomlistPrivate *priv = + purple_roomlist_get_instance_private(list); g_return_if_fail(priv != NULL); g_return_if_fail(room != NULL); @@ -170,7 +173,8 @@ void purple_roomlist_cancel_get_list(PurpleRoomlist *list) { - PurpleRoomlistPrivate *priv = PURPLE_ROOMLIST_GET_PRIVATE(list); + PurpleRoomlistPrivate *priv = + purple_roomlist_get_instance_private(list); PurpleProtocol *protocol = NULL; PurpleConnection *gc; @@ -189,7 +193,8 @@ void purple_roomlist_expand_category(PurpleRoomlist *list, PurpleRoomlistRoom *category) { - PurpleRoomlistPrivate *priv = PURPLE_ROOMLIST_GET_PRIVATE(list); + PurpleRoomlistPrivate *priv = + purple_roomlist_get_instance_private(list); PurpleProtocol *protocol = NULL; PurpleConnection *gc; @@ -209,7 +214,8 @@ GList * purple_roomlist_get_fields(PurpleRoomlist *list) { - PurpleRoomlistPrivate *priv = PURPLE_ROOMLIST_GET_PRIVATE(list); + PurpleRoomlistPrivate *priv = + purple_roomlist_get_instance_private(list); g_return_val_if_fail(priv != NULL, NULL); @@ -218,7 +224,8 @@ gpointer purple_roomlist_get_protocol_data(PurpleRoomlist *list) { - PurpleRoomlistPrivate *priv = PURPLE_ROOMLIST_GET_PRIVATE(list); + PurpleRoomlistPrivate *priv = + purple_roomlist_get_instance_private(list); g_return_val_if_fail(priv != NULL, NULL); @@ -227,7 +234,8 @@ void purple_roomlist_set_protocol_data(PurpleRoomlist *list, gpointer proto_data) { - PurpleRoomlistPrivate *priv = PURPLE_ROOMLIST_GET_PRIVATE(list); + PurpleRoomlistPrivate *priv = + purple_roomlist_get_instance_private(list); g_return_if_fail(priv != NULL); @@ -258,7 +266,8 @@ GParamSpec *pspec) { PurpleRoomlist *list = PURPLE_ROOMLIST(obj); - PurpleRoomlistPrivate *priv = PURPLE_ROOMLIST_GET_PRIVATE(list); + PurpleRoomlistPrivate *priv = + purple_roomlist_get_instance_private(list); switch (param_id) { case PROP_ACCOUNT: @@ -299,13 +308,18 @@ } } +static void +purple_roomlist_init(PurpleRoomlist *list) +{ +} + /* Called when done constructing */ static void purple_roomlist_constructed(GObject *object) { PurpleRoomlist *list = PURPLE_ROOMLIST(object); - parent_class->constructed(object); + G_OBJECT_CLASS(purple_roomlist_parent_class)->constructed(object); if (ops && ops->create) ops->create(list); @@ -316,7 +330,8 @@ purple_roomlist_finalize(GObject *object) { PurpleRoomlist *list = PURPLE_ROOMLIST(object); - PurpleRoomlistPrivate *priv = PURPLE_ROOMLIST_GET_PRIVATE(list); + PurpleRoomlistPrivate *priv = + purple_roomlist_get_instance_private(list); GList *l; purple_debug_misc("roomlist", "destroying list %p\n", list); @@ -333,7 +348,7 @@ g_list_foreach(priv->fields, (GFunc)purple_roomlist_field_free, NULL); g_list_free(priv->fields); - parent_class->finalize(object); + G_OBJECT_CLASS(purple_roomlist_parent_class)->finalize(object); } /* Class initializer function */ @@ -342,8 +357,6 @@ { GObjectClass *obj_class = G_OBJECT_CLASS(klass); - parent_class = g_type_class_peek_parent(klass); - obj_class->finalize = purple_roomlist_finalize; obj_class->constructed = purple_roomlist_constructed; @@ -351,8 +364,6 @@ obj_class->get_property = purple_roomlist_get_property; obj_class->set_property = purple_roomlist_set_property; - g_type_class_add_private(klass, sizeof(PurpleRoomlistPrivate)); - properties[PROP_ACCOUNT] = g_param_spec_object("account", "Account", "The account for the room list.", PURPLE_TYPE_ACCOUNT, @@ -371,32 +382,6 @@ g_object_class_install_properties(obj_class, PROP_LAST, properties); } -GType -purple_roomlist_get_type(void) -{ - static GType type = 0; - - if(type == 0) { - static const GTypeInfo info = { - sizeof(PurpleRoomlistClass), - NULL, - NULL, - (GClassInitFunc)purple_roomlist_class_init, - NULL, - NULL, - sizeof(PurpleRoomlist), - 0, - NULL, - NULL, - }; - - type = g_type_register_static(G_TYPE_OBJECT, "PurpleRoomlist", - &info, 0); - } - - return type; -} - PurpleRoomlist *purple_roomlist_new(PurpleAccount *account) { PurpleRoomlist *list; @@ -442,7 +427,8 @@ void purple_roomlist_room_add_field(PurpleRoomlist *list, PurpleRoomlistRoom *room, gconstpointer field) { - PurpleRoomlistPrivate *priv = PURPLE_ROOMLIST_GET_PRIVATE(list); + PurpleRoomlistPrivate *priv = + purple_roomlist_get_instance_private(list); PurpleRoomlistField *f; g_return_if_fail(priv != NULL); @@ -476,7 +462,8 @@ void purple_roomlist_room_join(PurpleRoomlist *list, PurpleRoomlistRoom *room) { - PurpleRoomlistPrivate *priv = PURPLE_ROOMLIST_GET_PRIVATE(list); + PurpleRoomlistPrivate *priv = + purple_roomlist_get_instance_private(list); GHashTable *components; GList *l, *j; PurpleConnection *gc; @@ -538,7 +525,8 @@ static void purple_roomlist_room_destroy(PurpleRoomlist *list, PurpleRoomlistRoom *r) { - PurpleRoomlistPrivate *priv = PURPLE_ROOMLIST_GET_PRIVATE(list); + PurpleRoomlistPrivate *priv = + purple_roomlist_get_instance_private(list); GList *l, *j; for (l = priv->fields, j = r->fields; l && j; l = l->next, j = j->next) {
--- a/libpurple/sound-theme.c Tue Dec 04 03:27:04 2018 +0000 +++ b/libpurple/sound-theme.c Thu Nov 01 15:45:13 2018 -0500 @@ -23,9 +23,6 @@ #include "internal.h" #include "sound-theme.h" -#define PURPLE_SOUND_THEME_GET_PRIVATE(Gobject) \ - (G_TYPE_INSTANCE_GET_PRIVATE((Gobject), PURPLE_TYPE_SOUND_THEME, PurpleSoundThemePrivate)) - /****************************************************************************** * Structs *****************************************************************************/ @@ -39,7 +36,8 @@ * Globals *****************************************************************************/ -static GObjectClass *parent_class = NULL; +G_DEFINE_TYPE_WITH_PRIVATE(PurpleSoundTheme, purple_sound_theme, + PURPLE_TYPE_THEME); /****************************************************************************** * Enums @@ -50,12 +48,11 @@ *****************************************************************************/ static void -purple_sound_theme_init(GTypeInstance *instance, - gpointer klass) +purple_sound_theme_init(PurpleSoundTheme *theme) { PurpleSoundThemePrivate *priv; - priv = PURPLE_SOUND_THEME_GET_PRIVATE(instance); + priv = purple_sound_theme_get_instance_private(theme); priv->sound_files = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free); @@ -66,11 +63,11 @@ { PurpleSoundThemePrivate *priv; - priv = PURPLE_SOUND_THEME_GET_PRIVATE(obj); + priv = purple_sound_theme_get_instance_private(PURPLE_SOUND_THEME(obj)); g_hash_table_destroy(priv->sound_files); - parent_class->finalize(obj); + G_OBJECT_CLASS(purple_sound_theme_parent_class)->finalize(obj); } static void @@ -78,36 +75,9 @@ { GObjectClass *obj_class = G_OBJECT_CLASS(klass); - parent_class = g_type_class_peek_parent(klass); - - g_type_class_add_private(klass, sizeof(PurpleSoundThemePrivate)); - obj_class->finalize = purple_sound_theme_finalize; } -GType -purple_sound_theme_get_type(void) -{ - static GType type = 0; - if (type == 0) { - static const GTypeInfo info = { - sizeof(PurpleSoundThemeClass), - NULL, /* base_init */ - NULL, /* base_finalize */ - (GClassInitFunc)purple_sound_theme_class_init, /* class_init */ - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof(PurpleSoundTheme), - 0, /* n_preallocs */ - purple_sound_theme_init, /* instance_init */ - NULL, /* value table */ - }; - type = g_type_register_static(PURPLE_TYPE_THEME, - "PurpleSoundTheme", &info, 0); - } - return type; -} - /***************************************************************************** * Public API functions *****************************************************************************/ @@ -120,7 +90,7 @@ g_return_val_if_fail(PURPLE_IS_SOUND_THEME(theme), NULL); - priv = PURPLE_SOUND_THEME_GET_PRIVATE(theme); + priv = purple_sound_theme_get_instance_private(theme); return g_hash_table_lookup(priv->sound_files, event); } @@ -148,7 +118,7 @@ PurpleSoundThemePrivate *priv; g_return_if_fail(PURPLE_IS_SOUND_THEME(theme)); - priv = PURPLE_SOUND_THEME_GET_PRIVATE(theme); + priv = purple_sound_theme_get_instance_private(theme); if (filename != NULL) g_hash_table_replace(priv->sound_files,
--- a/libpurple/theme-loader.c Tue Dec 04 03:27:04 2018 +0000 +++ b/libpurple/theme-loader.c Thu Nov 01 15:45:13 2018 -0500 @@ -24,9 +24,6 @@ #include "glibcompat.h" #include "theme-loader.h" -#define PURPLE_THEME_LOADER_GET_PRIVATE(PurpleThemeLoader) \ - (G_TYPE_INSTANCE_GET_PRIVATE((PurpleThemeLoader), PURPLE_TYPE_THEME_LOADER, PurpleThemeLoaderPrivate)) - void purple_theme_loader_set_type_string(PurpleThemeLoader *loader, const gchar *type); /****************************************************************************** @@ -50,9 +47,11 @@ * Globals *****************************************************************************/ -static GObjectClass *parent_class = NULL; static GParamSpec *properties[PROP_LAST]; +G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE(PurpleThemeLoader, purple_theme_loader, + G_TYPE_OBJECT); + /****************************************************************************** * GObject Stuff * *****************************************************************************/ @@ -105,14 +104,20 @@ } static void +purple_theme_loader_init(PurpleThemeLoader *loader) +{ +} + +static void purple_theme_loader_finalize(GObject *obj) { PurpleThemeLoader *loader = PURPLE_THEME_LOADER(obj); - PurpleThemeLoaderPrivate *priv = PURPLE_THEME_LOADER_GET_PRIVATE(loader); + PurpleThemeLoaderPrivate *priv = + purple_theme_loader_get_instance_private(loader); g_free(priv->type); - parent_class->finalize(obj); + G_OBJECT_CLASS(purple_theme_loader_parent_class)->finalize(obj); } static void @@ -120,10 +125,6 @@ { GObjectClass *obj_class = G_OBJECT_CLASS(klass); - parent_class = g_type_class_peek_parent(klass); - - g_type_class_add_private(klass, sizeof(PurpleThemeLoaderPrivate)); - obj_class->get_property = purple_theme_loader_get_property; obj_class->set_property = purple_theme_loader_set_property; obj_class->finalize = purple_theme_loader_finalize; @@ -138,29 +139,6 @@ g_object_class_install_properties(obj_class, PROP_LAST, properties); } -GType -purple_theme_loader_get_type(void) -{ - static GType type = 0; - if (type == 0) { - static const GTypeInfo info = { - sizeof(PurpleThemeLoaderClass), - NULL, /* base_init */ - NULL, /* base_finalize */ - (GClassInitFunc)purple_theme_loader_class_init, /* class_init */ - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof(PurpleThemeLoader), - 0, /* n_preallocs */ - NULL, /* instance_init */ - NULL, /* value table */ - }; - type = g_type_register_static(G_TYPE_OBJECT, - "PurpleThemeLoader", &info, G_TYPE_FLAG_ABSTRACT); - } - return type; -} - /***************************************************************************** * Public API functions *****************************************************************************/ @@ -172,7 +150,7 @@ g_return_val_if_fail(PURPLE_IS_THEME_LOADER(theme_loader), NULL); - priv = PURPLE_THEME_LOADER_GET_PRIVATE(theme_loader); + priv = purple_theme_loader_get_instance_private(theme_loader); return priv->type; } @@ -184,7 +162,7 @@ g_return_if_fail(PURPLE_IS_THEME_LOADER(loader)); - priv = PURPLE_THEME_LOADER_GET_PRIVATE(loader); + priv = purple_theme_loader_get_instance_private(loader); g_free(priv->type); priv->type = g_strdup(type);
--- a/libpurple/theme.c Tue Dec 04 03:27:04 2018 +0000 +++ b/libpurple/theme.c Thu Nov 01 15:45:13 2018 -0500 @@ -25,9 +25,6 @@ #include "theme.h" #include "util.h" -#define PURPLE_THEME_GET_PRIVATE(PurpleTheme) \ - (G_TYPE_INSTANCE_GET_PRIVATE((PurpleTheme), PURPLE_TYPE_THEME, PurpleThemePrivate)) - void purple_theme_set_type_string(PurpleTheme *theme, const gchar *type); /****************************************************************************** @@ -62,9 +59,10 @@ * Globals *****************************************************************************/ -static GObjectClass *parent_class = NULL; static GParamSpec *properties[PROP_LAST]; +G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE(PurpleTheme, purple_theme, G_TYPE_OBJECT); + /****************************************************************************** * GObject Stuff *****************************************************************************/ @@ -132,10 +130,15 @@ } static void +purple_theme_init(PurpleTheme *theme) +{ +} + +static void purple_theme_finalize(GObject *obj) { PurpleTheme *theme = PURPLE_THEME(obj); - PurpleThemePrivate *priv = PURPLE_THEME_GET_PRIVATE(theme); + PurpleThemePrivate *priv = purple_theme_get_instance_private(theme); g_free(priv->name); g_free(priv->description); @@ -144,7 +147,7 @@ g_free(priv->dir); g_free(priv->img); - G_OBJECT_CLASS (parent_class)->finalize (obj); + G_OBJECT_CLASS(purple_theme_parent_class)->finalize(obj); } static void @@ -152,10 +155,6 @@ { GObjectClass *obj_class = G_OBJECT_CLASS(klass); - parent_class = g_type_class_peek_parent(klass); - - g_type_class_add_private(klass, sizeof(PurpleThemePrivate)); - obj_class->get_property = purple_theme_get_property; obj_class->set_property = purple_theme_set_property; obj_class->finalize = purple_theme_finalize; @@ -201,30 +200,6 @@ g_object_class_install_properties(obj_class, PROP_LAST, properties); } - -GType -purple_theme_get_type(void) -{ - static GType type = 0; - if (type == 0) { - static const GTypeInfo info = { - sizeof(PurpleThemeClass), - NULL, /* base_init */ - NULL, /* base_finalize */ - (GClassInitFunc)purple_theme_class_init, /* class_init */ - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof(PurpleTheme), - 0, /* n_preallocs */ - NULL, /* instance_init */ - NULL, /* value table */ - }; - type = g_type_register_static (G_TYPE_OBJECT, - "PurpleTheme", &info, G_TYPE_FLAG_ABSTRACT); - } - return type; -} - /****************************************************************************** * Helper Functions *****************************************************************************/ @@ -252,7 +227,7 @@ g_return_val_if_fail(PURPLE_IS_THEME(theme), NULL); - priv = PURPLE_THEME_GET_PRIVATE(theme); + priv = purple_theme_get_instance_private(theme); return priv->name; } @@ -263,7 +238,7 @@ g_return_if_fail(PURPLE_IS_THEME(theme)); - priv = PURPLE_THEME_GET_PRIVATE(theme); + priv = purple_theme_get_instance_private(theme); g_free(priv->name); priv->name = theme_clean_text(name); @@ -278,7 +253,7 @@ g_return_val_if_fail(PURPLE_IS_THEME(theme), NULL); - priv = PURPLE_THEME_GET_PRIVATE(theme); + priv = purple_theme_get_instance_private(theme); return priv->description; } @@ -289,7 +264,7 @@ g_return_if_fail(PURPLE_IS_THEME(theme)); - priv = PURPLE_THEME_GET_PRIVATE(theme); + priv = purple_theme_get_instance_private(theme); g_free(priv->description); priv->description = theme_clean_text(description); @@ -304,7 +279,7 @@ g_return_val_if_fail(PURPLE_IS_THEME(theme), NULL); - priv = PURPLE_THEME_GET_PRIVATE(theme); + priv = purple_theme_get_instance_private(theme); return priv->author; } @@ -315,7 +290,7 @@ g_return_if_fail(PURPLE_IS_THEME(theme)); - priv = PURPLE_THEME_GET_PRIVATE(theme); + priv = purple_theme_get_instance_private(theme); g_free(priv->author); priv->author = theme_clean_text(author); @@ -330,7 +305,7 @@ g_return_val_if_fail(PURPLE_IS_THEME(theme), NULL); - priv = PURPLE_THEME_GET_PRIVATE(theme); + priv = purple_theme_get_instance_private(theme); return priv->type; } @@ -342,7 +317,7 @@ g_return_if_fail(PURPLE_IS_THEME(theme)); - priv = PURPLE_THEME_GET_PRIVATE(theme); + priv = purple_theme_get_instance_private(theme); g_free(priv->type); priv->type = g_strdup(type); @@ -357,7 +332,7 @@ g_return_val_if_fail(PURPLE_IS_THEME(theme), NULL); - priv = PURPLE_THEME_GET_PRIVATE(theme); + priv = purple_theme_get_instance_private(theme); return priv->dir; } @@ -368,7 +343,7 @@ g_return_if_fail(PURPLE_IS_THEME(theme)); - priv = PURPLE_THEME_GET_PRIVATE(theme); + priv = purple_theme_get_instance_private(theme); g_free(priv->dir); priv->dir = g_strdup(dir); @@ -383,7 +358,7 @@ g_return_val_if_fail(PURPLE_IS_THEME(theme), NULL); - priv = PURPLE_THEME_GET_PRIVATE(theme); + priv = purple_theme_get_instance_private(theme); return priv->img; } @@ -406,7 +381,7 @@ g_return_if_fail(PURPLE_IS_THEME(theme)); - priv = PURPLE_THEME_GET_PRIVATE(theme); + priv = purple_theme_get_instance_private(theme); g_free(priv->img); priv->img = g_strdup(img);
--- a/libpurple/trie.c Tue Dec 04 03:27:04 2018 +0000 +++ b/libpurple/trie.c Thu Nov 01 15:45:13 2018 -0500 @@ -27,9 +27,6 @@ #include "debug.h" #include "memorypool.h" -#define PURPLE_TRIE_GET_PRIVATE(obj) \ - (G_TYPE_INSTANCE_GET_PRIVATE((obj), PURPLE_TYPE_TRIE, PurpleTriePrivate)) - /* A single internal (that don't have any children) consists * of 256 + 4 pointers. That's 1040 bytes on 32-bit machine or 2080 bytes * on 64-bit. @@ -106,9 +103,9 @@ PROP_LAST }; -static GObjectClass *parent_class = NULL; static GParamSpec *properties[PROP_LAST]; +G_DEFINE_TYPE_WITH_PRIVATE(PurpleTrie, purple_trie, G_TYPE_OBJECT); /******************************************************************************* * Records list @@ -198,7 +195,7 @@ static void purple_trie_states_cleanup(PurpleTrie *trie) { - PurpleTriePrivate *priv = PURPLE_TRIE_GET_PRIVATE(trie); + PurpleTriePrivate *priv = purple_trie_get_instance_private(trie); g_return_if_fail(priv != NULL); @@ -212,7 +209,7 @@ static PurpleTrieState * purple_trie_state_new(PurpleTrie *trie, PurpleTrieState *parent, guchar character) { - PurpleTriePrivate *priv = PURPLE_TRIE_GET_PRIVATE(trie); + PurpleTriePrivate *priv = purple_trie_get_instance_private(trie); PurpleTrieState *state; g_return_val_if_fail(priv != NULL, NULL); @@ -247,7 +244,7 @@ static gboolean purple_trie_states_build(PurpleTrie *trie) { - PurpleTriePrivate *priv = PURPLE_TRIE_GET_PRIVATE(trie); + PurpleTriePrivate *priv = purple_trie_get_instance_private(trie); PurpleTrieState *root; PurpleMemoryPool *reclist_mpool; PurpleTrieRecordList *reclist, *it; @@ -436,7 +433,7 @@ purple_trie_replace(PurpleTrie *trie, const gchar *src, PurpleTrieReplaceCb replace_cb, gpointer user_data) { - PurpleTriePrivate *priv = PURPLE_TRIE_GET_PRIVATE(trie); + PurpleTriePrivate *priv = purple_trie_get_instance_private(trie); PurpleTrieMachine machine; GString *out; gsize i; @@ -495,7 +492,8 @@ machines = g_new(PurpleTrieMachine, tries_count); for (i = 0; i < tries_count; i++, tries = tries->next) { PurpleTrie *trie = tries->data; - PurpleTriePrivate *priv = PURPLE_TRIE_GET_PRIVATE(trie); + PurpleTriePrivate *priv = + purple_trie_get_instance_private(trie); if (priv == NULL) { g_warn_if_reached(); @@ -549,7 +547,7 @@ purple_trie_find(PurpleTrie *trie, const gchar *src, PurpleTrieFindCb find_cb, gpointer user_data) { - PurpleTriePrivate *priv = PURPLE_TRIE_GET_PRIVATE(trie); + PurpleTriePrivate *priv = purple_trie_get_instance_private(trie); PurpleTrieMachine machine; gulong found_count = 0; gsize i; @@ -603,7 +601,8 @@ machines = g_new(PurpleTrieMachine, tries_count); for (i = 0; i < tries_count; i++, tries = tries->next) { PurpleTrie *trie = tries->data; - PurpleTriePrivate *priv = PURPLE_TRIE_GET_PRIVATE(trie); + PurpleTriePrivate *priv = + purple_trie_get_instance_private(trie); if (priv == NULL) { g_warn_if_reached(); @@ -659,7 +658,7 @@ gboolean purple_trie_add(PurpleTrie *trie, const gchar *word, gpointer data) { - PurpleTriePrivate *priv = PURPLE_TRIE_GET_PRIVATE(trie); + PurpleTriePrivate *priv = purple_trie_get_instance_private(trie); PurpleTrieRecord *rec; g_return_val_if_fail(priv != NULL, FALSE); @@ -694,7 +693,7 @@ void purple_trie_remove(PurpleTrie *trie, const gchar *word) { - PurpleTriePrivate *priv = PURPLE_TRIE_GET_PRIVATE(trie); + PurpleTriePrivate *priv = purple_trie_get_instance_private(trie); PurpleTrieRecordList *it; g_return_if_fail(priv != NULL); @@ -720,7 +719,7 @@ guint purple_trie_get_size(PurpleTrie *trie) { - PurpleTriePrivate *priv = PURPLE_TRIE_GET_PRIVATE(trie); + PurpleTriePrivate *priv = purple_trie_get_instance_private(trie); g_return_val_if_fail(priv != NULL, 0); @@ -735,7 +734,7 @@ gboolean purple_trie_get_reset_on_match(PurpleTrie *trie) { - PurpleTriePrivate *priv = PURPLE_TRIE_GET_PRIVATE(trie); + PurpleTriePrivate *priv = purple_trie_get_instance_private(trie); g_return_val_if_fail(priv, FALSE); @@ -745,7 +744,7 @@ void purple_trie_set_reset_on_match(PurpleTrie *trie, gboolean reset) { - PurpleTriePrivate *priv = PURPLE_TRIE_GET_PRIVATE(trie); + PurpleTriePrivate *priv = purple_trie_get_instance_private(trie); g_return_if_fail(priv); @@ -764,10 +763,9 @@ } static void -purple_trie_init(GTypeInstance *instance, gpointer klass) +purple_trie_init(PurpleTrie *trie) { - PurpleTrie *trie = PURPLE_TRIE(instance); - PurpleTriePrivate *priv = PURPLE_TRIE_GET_PRIVATE(trie); + PurpleTriePrivate *priv = purple_trie_get_instance_private(trie); priv->records_obj_mempool = purple_memory_pool_new(); priv->records_str_mempool = purple_memory_pool_new(); @@ -781,14 +779,15 @@ static void purple_trie_finalize(GObject *obj) { - PurpleTriePrivate *priv = PURPLE_TRIE_GET_PRIVATE(obj); + PurpleTriePrivate *priv = + purple_trie_get_instance_private(PURPLE_TRIE(obj)); g_hash_table_destroy(priv->records_map); g_object_unref(priv->records_obj_mempool); g_object_unref(priv->records_str_mempool); g_object_unref(priv->states_mempool); - G_OBJECT_CLASS(parent_class)->finalize(obj); + G_OBJECT_CLASS(purple_trie_parent_class)->finalize(obj); } static void @@ -796,7 +795,7 @@ GParamSpec *pspec) { PurpleTrie *trie = PURPLE_TRIE(obj); - PurpleTriePrivate *priv = PURPLE_TRIE_GET_PRIVATE(trie); + PurpleTriePrivate *priv = purple_trie_get_instance_private(trie); switch (param_id) { case PROP_RESET_ON_MATCH: @@ -812,7 +811,7 @@ const GValue *value, GParamSpec *pspec) { PurpleTrie *trie = PURPLE_TRIE(obj); - PurpleTriePrivate *priv = PURPLE_TRIE_GET_PRIVATE(trie); + PurpleTriePrivate *priv = purple_trie_get_instance_private(trie); switch (param_id) { case PROP_RESET_ON_MATCH: @@ -828,10 +827,6 @@ { GObjectClass *obj_class = G_OBJECT_CLASS(klass); - parent_class = g_type_class_peek_parent(klass); - - g_type_class_add_private(klass, sizeof(PurpleTriePrivate)); - obj_class->finalize = purple_trie_finalize; obj_class->get_property = purple_trie_get_property; obj_class->set_property = purple_trie_set_property; @@ -847,23 +842,3 @@ g_object_class_install_properties(obj_class, PROP_LAST, properties); } - -GType -purple_trie_get_type(void) -{ - static GType type = 0; - - if (G_UNLIKELY(type == 0)) { - static const GTypeInfo info = { - .class_size = sizeof(PurpleTrieClass), - .class_init = (GClassInitFunc)purple_trie_class_init, - .instance_size = sizeof(PurpleTrie), - .instance_init = purple_trie_init, - }; - - type = g_type_register_static(G_TYPE_OBJECT, - "PurpleTrie", &info, 0); - } - - return type; -}