Thu, 07 Feb 2019 04:01:22 -0500
Use G_DEFINE_TYPE_WITH_PRIVATE on PurpleBuddy.
--- a/libpurple/buddy.c Thu Feb 07 03:21:21 2019 -0500 +++ b/libpurple/buddy.c Thu Feb 07 04:01:22 2019 -0500 @@ -24,9 +24,6 @@ #include "glibcompat.h" #include "util.h" -#define PURPLE_BUDDY_GET_PRIVATE(obj) \ - (G_TYPE_INSTANCE_GET_PRIVATE((obj), PURPLE_TYPE_BUDDY, PurpleBuddyPrivate)) - typedef struct _PurpleBuddyPrivate PurpleBuddyPrivate; struct _PurpleBuddyPrivate { @@ -60,9 +57,10 @@ /****************************************************************************** * Globals *****************************************************************************/ -static PurpleBlistNode *parent_class; static GParamSpec *properties[PROP_LAST]; +G_DEFINE_TYPE_WITH_PRIVATE(PurpleBuddy, purple_buddy, PURPLE_TYPE_BLIST_NODE) + /****************************************************************************** * API *****************************************************************************/ @@ -70,7 +68,7 @@ purple_buddy_set_icon(PurpleBuddy *buddy, PurpleBuddyIcon *icon) { PurpleBlistUiOps *ops = purple_blist_get_ui_ops(); - PurpleBuddyPrivate *priv = PURPLE_BUDDY_GET_PRIVATE(buddy); + PurpleBuddyPrivate *priv = purple_buddy_get_instance_private(buddy); g_return_if_fail(priv != NULL); @@ -90,9 +88,9 @@ } PurpleBuddyIcon * -purple_buddy_get_icon(const PurpleBuddy *buddy) +purple_buddy_get_icon(PurpleBuddy *buddy) { - PurpleBuddyPrivate *priv = PURPLE_BUDDY_GET_PRIVATE(buddy); + PurpleBuddyPrivate *priv = purple_buddy_get_instance_private(buddy); g_return_val_if_fail(priv != NULL, NULL); @@ -100,9 +98,9 @@ } PurpleAccount * -purple_buddy_get_account(const PurpleBuddy *buddy) +purple_buddy_get_account(PurpleBuddy *buddy) { - PurpleBuddyPrivate *priv = PURPLE_BUDDY_GET_PRIVATE(buddy); + PurpleBuddyPrivate *priv = purple_buddy_get_instance_private(buddy); g_return_val_if_fail(priv != NULL, NULL); @@ -112,7 +110,7 @@ void purple_buddy_set_name(PurpleBuddy *buddy, const char *name) { - PurpleBuddyPrivate *priv = PURPLE_BUDDY_GET_PRIVATE(buddy); + PurpleBuddyPrivate *priv = purple_buddy_get_instance_private(buddy); PurpleBlistUiOps *ops = purple_blist_get_ui_ops(); g_return_if_fail(priv != NULL); @@ -133,9 +131,9 @@ } const char * -purple_buddy_get_name(const PurpleBuddy *buddy) +purple_buddy_get_name(PurpleBuddy *buddy) { - PurpleBuddyPrivate *priv = PURPLE_BUDDY_GET_PRIVATE(buddy); + PurpleBuddyPrivate *priv = purple_buddy_get_instance_private(buddy); g_return_val_if_fail(priv != NULL, NULL); @@ -143,9 +141,9 @@ } gpointer -purple_buddy_get_protocol_data(const PurpleBuddy *buddy) +purple_buddy_get_protocol_data(PurpleBuddy *buddy) { - PurpleBuddyPrivate *priv = PURPLE_BUDDY_GET_PRIVATE(buddy); + PurpleBuddyPrivate *priv = purple_buddy_get_instance_private(buddy); g_return_val_if_fail(priv != NULL, NULL); @@ -155,7 +153,7 @@ void purple_buddy_set_protocol_data(PurpleBuddy *buddy, gpointer data) { - PurpleBuddyPrivate *priv = PURPLE_BUDDY_GET_PRIVATE(buddy); + PurpleBuddyPrivate *priv = purple_buddy_get_instance_private(buddy); g_return_if_fail(priv != NULL); @@ -164,7 +162,7 @@ const char *purple_buddy_get_alias_only(PurpleBuddy *buddy) { - PurpleBuddyPrivate *priv = PURPLE_BUDDY_GET_PRIVATE(buddy); + PurpleBuddyPrivate *priv = purple_buddy_get_instance_private(buddy); g_return_val_if_fail(priv != NULL, NULL); @@ -182,7 +180,7 @@ const char *purple_buddy_get_contact_alias(PurpleBuddy *buddy) { PurpleContact *c; - PurpleBuddyPrivate *priv = PURPLE_BUDDY_GET_PRIVATE(buddy); + PurpleBuddyPrivate *priv = purple_buddy_get_instance_private(buddy); g_return_val_if_fail(priv != NULL, NULL); @@ -206,7 +204,7 @@ const char *purple_buddy_get_alias(PurpleBuddy *buddy) { - PurpleBuddyPrivate *priv = PURPLE_BUDDY_GET_PRIVATE(buddy); + PurpleBuddyPrivate *priv = purple_buddy_get_instance_private(buddy); g_return_val_if_fail(priv != NULL, NULL); @@ -230,7 +228,7 @@ PurpleIMConversation *im; char *old_alias; char *new_alias = NULL; - PurpleBuddyPrivate *priv = PURPLE_BUDDY_GET_PRIVATE(buddy); + PurpleBuddyPrivate *priv = purple_buddy_get_instance_private(buddy); g_return_if_fail(priv != NULL); @@ -272,7 +270,7 @@ const char *purple_buddy_get_local_alias(PurpleBuddy *buddy) { - PurpleBuddyPrivate *priv = PURPLE_BUDDY_GET_PRIVATE(buddy); + PurpleBuddyPrivate *priv = purple_buddy_get_instance_private(buddy); g_return_val_if_fail(priv != NULL, NULL); @@ -286,7 +284,7 @@ PurpleIMConversation *im; char *old_alias; char *new_alias = NULL; - PurpleBuddyPrivate *priv = PURPLE_BUDDY_GET_PRIVATE(buddy); + PurpleBuddyPrivate *priv = purple_buddy_get_instance_private(buddy); g_return_if_fail(priv != NULL); @@ -329,7 +327,7 @@ const char *purple_buddy_get_server_alias(PurpleBuddy *buddy) { - PurpleBuddyPrivate *priv = PURPLE_BUDDY_GET_PRIVATE(buddy); + PurpleBuddyPrivate *priv = purple_buddy_get_instance_private(buddy); g_return_val_if_fail(priv != NULL, NULL); @@ -346,9 +344,9 @@ return PURPLE_CONTACT(PURPLE_BLIST_NODE(buddy)->parent); } -PurplePresence *purple_buddy_get_presence(const PurpleBuddy *buddy) +PurplePresence *purple_buddy_get_presence(PurpleBuddy *buddy) { - PurpleBuddyPrivate *priv = PURPLE_BUDDY_GET_PRIVATE(buddy); + PurpleBuddyPrivate *priv = purple_buddy_get_instance_private(buddy); g_return_val_if_fail(priv != NULL, NULL); @@ -363,7 +361,7 @@ PurpleContact *contact; PurpleCountingNode *contact_counter, *group_counter; PurpleBlistUiOps *ops = purple_blist_get_ui_ops(); - PurpleBuddyPrivate *priv = PURPLE_BUDDY_GET_PRIVATE(buddy); + PurpleBuddyPrivate *priv = purple_buddy_get_instance_private(buddy); g_return_if_fail(priv != NULL); @@ -421,9 +419,9 @@ ops->update(purple_blist_get_buddy_list(), PURPLE_BLIST_NODE(buddy)); } -PurpleMediaCaps purple_buddy_get_media_caps(const PurpleBuddy *buddy) +PurpleMediaCaps purple_buddy_get_media_caps(PurpleBuddy *buddy) { - PurpleBuddyPrivate *priv = PURPLE_BUDDY_GET_PRIVATE(buddy); + PurpleBuddyPrivate *priv = purple_buddy_get_instance_private(buddy); g_return_val_if_fail(priv != NULL, 0); @@ -432,7 +430,7 @@ void purple_buddy_set_media_caps(PurpleBuddy *buddy, PurpleMediaCaps media_caps) { - PurpleBuddyPrivate *priv = PURPLE_BUDDY_GET_PRIVATE(buddy); + PurpleBuddyPrivate *priv = purple_buddy_get_instance_private(buddy); g_return_if_fail(priv != NULL); @@ -460,7 +458,7 @@ GParamSpec *pspec) { PurpleBuddy *buddy = PURPLE_BUDDY(obj); - PurpleBuddyPrivate *priv = PURPLE_BUDDY_GET_PRIVATE(buddy); + PurpleBuddyPrivate *priv = purple_buddy_get_instance_private(buddy); switch (param_id) { case PROP_NAME: @@ -530,16 +528,17 @@ } static void -purple_buddy_init(GTypeInstance *instance, gpointer klass) { +purple_buddy_init(PurpleBuddy *buddy) +{ } static void purple_buddy_constructed(GObject *object) { PurpleBuddy *buddy = PURPLE_BUDDY(object); - PurpleBuddyPrivate *priv = PURPLE_BUDDY_GET_PRIVATE(buddy); + PurpleBuddyPrivate *priv = purple_buddy_get_instance_private(buddy); PurpleBlistUiOps *ops = purple_blist_get_ui_ops(); - G_OBJECT_CLASS(parent_class)->constructed(object); + G_OBJECT_CLASS(purple_buddy_parent_class)->constructed(object); priv->presence = PURPLE_PRESENCE(purple_buddy_presence_new(buddy)); purple_presence_set_status_active(priv->presence, "offline", TRUE); @@ -552,7 +551,7 @@ static void purple_buddy_dispose(GObject *object) { - PurpleBuddyPrivate *priv = PURPLE_BUDDY_GET_PRIVATE(object); + PurpleBuddyPrivate *priv = purple_buddy_get_instance_private(PURPLE_BUDDY(object)); if (priv->icon) { purple_buddy_icon_unref(priv->icon); @@ -564,13 +563,13 @@ priv->presence = NULL; } - G_OBJECT_CLASS(parent_class)->dispose(object); + G_OBJECT_CLASS(purple_buddy_parent_class)->dispose(object); } static void purple_buddy_finalize(GObject *object) { PurpleBuddy *buddy = PURPLE_BUDDY(object); - PurpleBuddyPrivate *priv = PURPLE_BUDDY_GET_PRIVATE(buddy); + PurpleBuddyPrivate *priv = purple_buddy_get_instance_private(buddy); PurpleProtocol *protocol; /* @@ -585,14 +584,12 @@ g_free(priv->local_alias); g_free(priv->server_alias); - G_OBJECT_CLASS(parent_class)->finalize(object); + G_OBJECT_CLASS(purple_buddy_parent_class)->finalize(object); } static void purple_buddy_class_init(PurpleBuddyClass *klass) { GObjectClass *obj_class = G_OBJECT_CLASS(klass); - parent_class = g_type_class_peek_parent(klass); - obj_class->dispose = purple_buddy_dispose; obj_class->finalize = purple_buddy_finalize; @@ -601,8 +598,6 @@ obj_class->set_property = purple_buddy_set_property; obj_class->constructed = purple_buddy_constructed; - g_type_class_add_private(klass, sizeof(PurpleBuddyPrivate)); - properties[PROP_NAME] = g_param_spec_string( "name", "Name", @@ -661,32 +656,6 @@ g_object_class_install_properties(obj_class, PROP_LAST, properties); } -GType -purple_buddy_get_type(void) { - static GType type = 0; - - if(type == 0) { - static const GTypeInfo info = { - sizeof(PurpleBuddyClass), - NULL, - NULL, - (GClassInitFunc)purple_buddy_class_init, - NULL, - NULL, - sizeof(PurpleBuddy), - 0, - (GInstanceInitFunc)purple_buddy_init, - NULL, - }; - - type = g_type_register_static(PURPLE_TYPE_BLIST_NODE, - "PurpleBuddy", - &info, 0); - } - - return type; -} - PurpleBuddy * purple_buddy_new(PurpleAccount *account, const char *name, const char *alias) {
--- a/libpurple/buddy.h Thu Feb 07 03:21:21 2019 -0500 +++ b/libpurple/buddy.h Thu Feb 07 04:01:22 2019 -0500 @@ -133,7 +133,7 @@ * * Returns: The buddy icon. */ -PurpleBuddyIcon *purple_buddy_get_icon(const PurpleBuddy *buddy); +PurpleBuddyIcon *purple_buddy_get_icon(PurpleBuddy *buddy); /** * purple_buddy_get_account: @@ -143,7 +143,7 @@ * * Returns: The account */ -PurpleAccount *purple_buddy_get_account(const PurpleBuddy *buddy); +PurpleAccount *purple_buddy_get_account(PurpleBuddy *buddy); /** * purple_buddy_set_name: @@ -162,7 +162,7 @@ * * Returns: The name. */ -const char *purple_buddy_get_name(const PurpleBuddy *buddy); +const char *purple_buddy_get_name(PurpleBuddy *buddy); /** * purple_buddy_get_protocol_data: @@ -176,7 +176,7 @@ * * Returns: The protocol data. */ -gpointer purple_buddy_get_protocol_data(const PurpleBuddy *buddy); +gpointer purple_buddy_get_protocol_data(PurpleBuddy *buddy); /** * purple_buddy_set_protocol_data: @@ -209,7 +209,7 @@ * * Returns: The buddy's presence. */ -PurplePresence *purple_buddy_get_presence(const PurpleBuddy *buddy); +PurplePresence *purple_buddy_get_presence(PurpleBuddy *buddy); /** * purple_buddy_update_status: @@ -230,7 +230,7 @@ * * Returns: The media caps. */ -PurpleMediaCaps purple_buddy_get_media_caps(const PurpleBuddy *buddy); +PurpleMediaCaps purple_buddy_get_media_caps(PurpleBuddy *buddy); /** * purple_buddy_set_media_caps:
--- a/libpurple/protocols/bonjour/bonjour_ft.c Thu Feb 07 03:21:21 2019 -0500 +++ b/libpurple/protocols/bonjour/bonjour_ft.c Thu Feb 07 04:01:22 2019 -0500 @@ -627,7 +627,8 @@ */ static gboolean add_ipv6_link_local_ifaces(PurpleXmlNode *cur_streamhost, const char *host, - const PurpleBuddy *pb) { + PurpleBuddy *pb) +{ PurpleXmlNode *new_streamhost = NULL; struct in6_addr in6_addr; BonjourBuddy *bb;
--- a/libpurple/protocols/facebook/util.c Thu Feb 07 03:21:21 2019 -0500 +++ b/libpurple/protocols/facebook/util.c Thu Feb 07 04:01:22 2019 -0500 @@ -345,19 +345,23 @@ static gint fb_buddy_cmp(gconstpointer a, gconstpointer b) { + PurpleBuddy *pba, *pbb; gint alias_verdict, name_verdict; gchar *astr, *bstr; - astr = g_utf8_casefold(purple_buddy_get_alias(PURPLE_BUDDY(a)), -1); - bstr = g_utf8_casefold(purple_buddy_get_alias(PURPLE_BUDDY(b)), -1); + pba = PURPLE_BUDDY(a); + pbb = PURPLE_BUDDY(b); + + astr = g_utf8_casefold(purple_buddy_get_alias(pba), -1); + bstr = g_utf8_casefold(purple_buddy_get_alias(pbb), -1); alias_verdict = g_utf8_collate(astr, bstr); g_free(astr); g_free(bstr); if (alias_verdict != 0) { return alias_verdict; } - astr = g_utf8_casefold(purple_buddy_get_name(a), -1); - bstr = g_utf8_casefold(purple_buddy_get_name(b), -1); + astr = g_utf8_casefold(purple_buddy_get_name(pba), -1); + bstr = g_utf8_casefold(purple_buddy_get_name(pbb), -1); name_verdict = g_utf8_collate(astr, bstr); g_free(astr); g_free(bstr);