diff options
author | Mike Ruprecht <cmaiku@gmail.com> | 2018-11-01 15:45:13 -0500 |
---|---|---|
committer | Mike Ruprecht <cmaiku@gmail.com> | 2018-11-01 15:45:13 -0500 |
commit | 5658640049ef422525dd68566ea773601fcd35d0 (patch) | |
tree | 3db107f4d6ec1a367815809d1b303b1fe0b133a0 /libpurple/contact.c | |
parent | cb597881956ace7ea1ed440afc05604116ae82ee (diff) | |
download | pidgin-5658640049ef422525dd68566ea773601fcd35d0.tar.gz |
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.
Diffstat (limited to 'libpurple/contact.c')
-rw-r--r-- | libpurple/contact.c | 69 |
1 files changed, 21 insertions, 48 deletions
diff --git a/libpurple/contact.c b/libpurple/contact.c index e80eb7e792..82a3670d9c 100644 --- a/libpurple/contact.c +++ b/libpurple/contact.c @@ -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 @@ enum /****************************************************************************** * 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 @@ static void 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 @@ purple_contact_set_alias(PurpleContact *contact, const char *alias) 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 @@ purple_contact_set_alias(PurpleContact *contact, const char *alias) 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 @@ gboolean purple_contact_on_account(PurpleContact *c, PurpleAccount *account) 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 @@ void purple_contact_invalidate_priority_buddy(PurpleContact *contact) 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 @@ purple_contact_get_property(GObject *obj, guint param_id, GValue *value, 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 @@ purple_contact_get_property(GObject *obj, guint param_id, GValue *value, /* 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 @@ purple_contact_init(GTypeInstance *instance, gpointer klass) 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_free(priv->alias); - G_OBJECT_CLASS(parent_class)->finalize(object); + G_OBJECT_CLASS(purple_contact_parent_class)->finalize(object); } /* Class initializer function */ @@ -316,16 +323,12 @@ static void purple_contact_class_init(PurpleContactClass *klass) { 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 @@ static void purple_contact_class_init(PurpleContactClass *klass) 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) { |