Fri, 14 Dec 2018 08:25:23 +0000
Merged in default (pull request #451)
libpurple: Port almost self-contained code from g_type_class_add_private()
Approved-by: Gary Kramlich
Approved-by: Eion Robb
--- a/libpurple/circularbuffer.c Fri Dec 14 08:06:02 2018 +0000 +++ b/libpurple/circularbuffer.c Fri Dec 14 08:25:23 2018 +0000 @@ -23,9 +23,6 @@ #define DEFAULT_BUF_SIZE 256 -#define PURPLE_CIRCULAR_BUFFER_GET_PRIVATE(obj) \ - (G_TYPE_INSTANCE_GET_PRIVATE((obj), PURPLE_TYPE_CIRCULAR_BUFFER, PurpleCircularBufferPrivate)) - /****************************************************************************** * Structs *****************************************************************************/ @@ -67,9 +64,11 @@ /****************************************************************************** * Globals *****************************************************************************/ -static GObjectClass *parent_class = NULL; static GParamSpec *properties[PROP_LAST]; +G_DEFINE_TYPE_WITH_PRIVATE(PurpleCircularBuffer, purple_circular_buffer, + G_TYPE_OBJECT); + /****************************************************************************** * Circular Buffer Implementation *****************************************************************************/ @@ -80,7 +79,7 @@ gsize start_buflen; GObject *obj; - priv = PURPLE_CIRCULAR_BUFFER_GET_PRIVATE(buffer); + priv = purple_circular_buffer_get_instance_private(buffer); start_buflen = priv->buflen; @@ -134,7 +133,7 @@ gsize len_stored; GObject *obj; - priv = PURPLE_CIRCULAR_BUFFER_GET_PRIVATE(buffer); + priv = purple_circular_buffer_get_instance_private(buffer); /* Grow the buffer, if necessary */ if((priv->buflen - priv->bufused) < len) @@ -169,11 +168,11 @@ } static gsize -purple_circular_buffer_real_max_read_size(const PurpleCircularBuffer *buffer) { +purple_circular_buffer_real_max_read_size(PurpleCircularBuffer *buffer) { PurpleCircularBufferPrivate *priv = NULL; gsize max_read; - priv = PURPLE_CIRCULAR_BUFFER_GET_PRIVATE(buffer); + priv = purple_circular_buffer_get_instance_private(buffer); if(priv->bufused == 0) max_read = 0; @@ -194,7 +193,7 @@ g_return_val_if_fail(purple_circular_buffer_get_max_read(buffer) >= len, FALSE); - priv = PURPLE_CIRCULAR_BUFFER_GET_PRIVATE(buffer); + priv = purple_circular_buffer_get_instance_private(buffer); priv->output += len; priv->bufused -= len; @@ -220,7 +219,7 @@ gsize grow_size) { PurpleCircularBufferPrivate *priv = - PURPLE_CIRCULAR_BUFFER_GET_PRIVATE(buffer); + purple_circular_buffer_get_instance_private(buffer); priv->growsize = (grow_size != 0) ? grow_size : DEFAULT_BUF_SIZE; @@ -228,12 +227,12 @@ } static const gchar * -purple_circular_buffer_get_input(const PurpleCircularBuffer *buffer) { +purple_circular_buffer_get_input(PurpleCircularBuffer *buffer) { PurpleCircularBufferPrivate *priv = NULL; g_return_val_if_fail(PURPLE_IS_CIRCULAR_BUFFER(buffer), NULL); - priv = PURPLE_CIRCULAR_BUFFER_GET_PRIVATE(buffer); + priv = purple_circular_buffer_get_instance_private(buffer); return priv->input; } @@ -242,13 +241,19 @@ * Object Stuff *****************************************************************************/ static void +purple_circular_buffer_init(PurpleCircularBuffer *buffer) +{ +} + +static void purple_circular_buffer_finalize(GObject *obj) { PurpleCircularBufferPrivate *priv = - PURPLE_CIRCULAR_BUFFER_GET_PRIVATE(obj); + purple_circular_buffer_get_instance_private( + PURPLE_CIRCULAR_BUFFER(obj)); g_free(priv->buffer); - G_OBJECT_CLASS(parent_class)->finalize(obj); + G_OBJECT_CLASS(purple_circular_buffer_parent_class)->finalize(obj); } static void @@ -302,10 +307,6 @@ GObjectClass *obj_class = G_OBJECT_CLASS(klass); PurpleCircularBufferClass *buffer_class = PURPLE_CIRCULAR_BUFFER_CLASS(klass); - parent_class = g_type_class_peek_parent(klass); - - g_type_class_add_private(klass, sizeof(PurpleCircularBufferPrivate)); - obj_class->finalize = purple_circular_buffer_finalize; obj_class->get_property = purple_circular_buffer_get_property; obj_class->set_property = purple_circular_buffer_set_property; @@ -344,25 +345,6 @@ /****************************************************************************** * API *****************************************************************************/ -GType -purple_circular_buffer_get_type(void) { - static GType type = 0; - - if(G_UNLIKELY(type == 0)) { - static const GTypeInfo info = { - .class_size = sizeof(PurpleCircularBufferClass), - .class_init = (GClassInitFunc)purple_circular_buffer_class_init, - .instance_size = sizeof(PurpleCircularBuffer), - }; - - type = g_type_register_static(G_TYPE_OBJECT, - "PurpleCircularBuffer", - &info, 0); - } - - return type; -} - PurpleCircularBuffer * purple_circular_buffer_new(gsize growsize) { return g_object_new(PURPLE_TYPE_CIRCULAR_BUFFER, @@ -396,7 +378,7 @@ } gsize -purple_circular_buffer_get_max_read(const PurpleCircularBuffer *buffer) { +purple_circular_buffer_get_max_read(PurpleCircularBuffer *buffer) { PurpleCircularBufferClass *klass = NULL; g_return_val_if_fail(PURPLE_IS_CIRCULAR_BUFFER(buffer), 0); @@ -422,35 +404,35 @@ } gsize -purple_circular_buffer_get_grow_size(const PurpleCircularBuffer *buffer) { +purple_circular_buffer_get_grow_size(PurpleCircularBuffer *buffer) { PurpleCircularBufferPrivate *priv = NULL; g_return_val_if_fail(PURPLE_IS_CIRCULAR_BUFFER(buffer), 0); - priv = PURPLE_CIRCULAR_BUFFER_GET_PRIVATE(buffer); + priv = purple_circular_buffer_get_instance_private(buffer); return priv->growsize; } gsize -purple_circular_buffer_get_used(const PurpleCircularBuffer *buffer) { +purple_circular_buffer_get_used(PurpleCircularBuffer *buffer) { PurpleCircularBufferPrivate *priv = NULL; g_return_val_if_fail(PURPLE_IS_CIRCULAR_BUFFER(buffer), 0); - priv = PURPLE_CIRCULAR_BUFFER_GET_PRIVATE(buffer); + priv = purple_circular_buffer_get_instance_private(buffer); return priv->bufused; } const gchar * -purple_circular_buffer_get_output(const PurpleCircularBuffer *buffer) { +purple_circular_buffer_get_output(PurpleCircularBuffer *buffer) { PurpleCircularBufferPrivate *priv = NULL; g_return_val_if_fail(PURPLE_IS_CIRCULAR_BUFFER(buffer), NULL); - priv = PURPLE_CIRCULAR_BUFFER_GET_PRIVATE(buffer); + priv = purple_circular_buffer_get_instance_private(buffer); return priv->output; } @@ -462,7 +444,7 @@ g_return_if_fail(PURPLE_IS_CIRCULAR_BUFFER(buffer)); - priv = PURPLE_CIRCULAR_BUFFER_GET_PRIVATE(buffer); + priv = purple_circular_buffer_get_instance_private(buffer); priv->input = priv->buffer; priv->output = priv->buffer;
--- a/libpurple/circularbuffer.h Fri Dec 14 08:06:02 2018 +0000 +++ b/libpurple/circularbuffer.h Fri Dec 14 08:25:23 2018 +0000 @@ -50,7 +50,7 @@ void (*grow)(PurpleCircularBuffer *buffer, gsize len); void (*append)(PurpleCircularBuffer *buffer, gconstpointer src, gsize len); - gsize (*max_read_size)(const PurpleCircularBuffer *buffer); + gsize (*max_read_size)(PurpleCircularBuffer *buffer); gboolean (*mark_read)(PurpleCircularBuffer *buffer, gsize len); void (*purple_reserved1)(void); @@ -100,7 +100,7 @@ * * Returns: the number of bytes that can be read from the PurpleCircularBuffer */ -gsize purple_circular_buffer_get_max_read(const PurpleCircularBuffer *buffer); +gsize purple_circular_buffer_get_max_read(PurpleCircularBuffer *buffer); /** * purple_circular_buffer_mark_read: @@ -133,7 +133,7 @@ * * Returns: The grow size of the buffer. */ -gsize purple_circular_buffer_get_grow_size(const PurpleCircularBuffer *buffer); +gsize purple_circular_buffer_get_grow_size(PurpleCircularBuffer *buffer); /** * purple_circular_buffer_get_used: @@ -143,7 +143,7 @@ * * Returns: The number of bytes that contain unread data. */ -gsize purple_circular_buffer_get_used(const PurpleCircularBuffer *buffer); +gsize purple_circular_buffer_get_used(PurpleCircularBuffer *buffer); /** * purple_circular_buffer_get_output: @@ -156,7 +156,7 @@ * * Returns: The output pointer for the buffer. */ -const gchar *purple_circular_buffer_get_output(const PurpleCircularBuffer *buffer); +const gchar *purple_circular_buffer_get_output(PurpleCircularBuffer *buffer); /** * purple_circular_buffer_reset:
--- a/libpurple/conversation.c Fri Dec 14 08:06:02 2018 +0000 +++ b/libpurple/conversation.c Fri Dec 14 08:25:23 2018 +0000 @@ -35,9 +35,6 @@ #include "smiley-list.h" #include "util.h" -#define PURPLE_CONVERSATION_GET_PRIVATE(obj) \ - (G_TYPE_INSTANCE_GET_PRIVATE((obj), PURPLE_TYPE_CONVERSATION, PurpleConversationPrivate)) - typedef struct _PurpleConversationPrivate PurpleConversationPrivate; /* General private data for a conversation */ @@ -77,15 +74,18 @@ PROP_LAST }; -static GObjectClass *parent_class; static GParamSpec *properties[PROP_LAST]; +G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE(PurpleConversation, purple_conversation, + G_TYPE_OBJECT); + static void common_send(PurpleConversation *conv, const char *message, PurpleMessageFlags msgflags) { PurpleAccount *account; PurpleConnection *gc; - PurpleConversationPrivate *priv = PURPLE_CONVERSATION_GET_PRIVATE(conv); + PurpleConversationPrivate *priv = + purple_conversation_get_instance_private(conv); PurpleMessage *msg; char *displayed = NULL; const char *sent; @@ -195,7 +195,8 @@ static void open_log(PurpleConversation *conv) { - PurpleConversationPrivate *priv = PURPLE_CONVERSATION_GET_PRIVATE(conv); + PurpleConversationPrivate *priv = + purple_conversation_get_instance_private(conv); GDateTime *dt; g_return_if_fail(priv != NULL); @@ -212,7 +213,8 @@ static void add_message_to_history(PurpleConversation *conv, PurpleMessage *msg) { - PurpleConversationPrivate *priv = PURPLE_CONVERSATION_GET_PRIVATE(conv); + PurpleConversationPrivate *priv = + purple_conversation_get_instance_private(conv); g_return_if_fail(priv != NULL); g_return_if_fail(msg != NULL); @@ -238,7 +240,8 @@ void purple_conversation_set_features(PurpleConversation *conv, PurpleConnectionFlags features) { - PurpleConversationPrivate *priv = PURPLE_CONVERSATION_GET_PRIVATE(conv); + PurpleConversationPrivate *priv = + purple_conversation_get_instance_private(conv); g_return_if_fail(priv != NULL); @@ -252,7 +255,8 @@ PurpleConnectionFlags purple_conversation_get_features(PurpleConversation *conv) { - PurpleConversationPrivate *priv = PURPLE_CONVERSATION_GET_PRIVATE(conv); + PurpleConversationPrivate *priv = + purple_conversation_get_instance_private(conv); g_return_val_if_fail(priv != NULL, 0); @@ -290,7 +294,8 @@ purple_conversation_set_ui_ops(PurpleConversation *conv, PurpleConversationUiOps *ops) { - PurpleConversationPrivate *priv = PURPLE_CONVERSATION_GET_PRIVATE(conv); + PurpleConversationPrivate *priv = + purple_conversation_get_instance_private(conv); g_return_if_fail(priv != NULL); @@ -304,9 +309,10 @@ } PurpleConversationUiOps * -purple_conversation_get_ui_ops(const PurpleConversation *conv) +purple_conversation_get_ui_ops(PurpleConversation *conv) { - PurpleConversationPrivate *priv = PURPLE_CONVERSATION_GET_PRIVATE(conv); + PurpleConversationPrivate *priv = + purple_conversation_get_instance_private(conv); g_return_val_if_fail(priv != NULL, NULL); @@ -316,7 +322,8 @@ void purple_conversation_set_account(PurpleConversation *conv, PurpleAccount *account) { - PurpleConversationPrivate *priv = PURPLE_CONVERSATION_GET_PRIVATE(conv); + PurpleConversationPrivate *priv = + purple_conversation_get_instance_private(conv); g_return_if_fail(priv != NULL); @@ -332,9 +339,10 @@ } PurpleAccount * -purple_conversation_get_account(const PurpleConversation *conv) +purple_conversation_get_account(PurpleConversation *conv) { - PurpleConversationPrivate *priv = PURPLE_CONVERSATION_GET_PRIVATE(conv); + PurpleConversationPrivate *priv = + purple_conversation_get_instance_private(conv); g_return_val_if_fail(priv != NULL, NULL); @@ -342,7 +350,7 @@ } PurpleConnection * -purple_conversation_get_connection(const PurpleConversation *conv) +purple_conversation_get_connection(PurpleConversation *conv) { PurpleAccount *account; @@ -359,7 +367,8 @@ void purple_conversation_set_title(PurpleConversation *conv, const char *title) { - PurpleConversationPrivate *priv = PURPLE_CONVERSATION_GET_PRIVATE(conv); + PurpleConversationPrivate *priv = + purple_conversation_get_instance_private(conv); g_return_if_fail(priv != NULL); g_return_if_fail(title != NULL); @@ -374,9 +383,10 @@ } const char * -purple_conversation_get_title(const PurpleConversation *conv) +purple_conversation_get_title(PurpleConversation *conv) { - PurpleConversationPrivate *priv = PURPLE_CONVERSATION_GET_PRIVATE(conv); + PurpleConversationPrivate *priv = + purple_conversation_get_instance_private(conv); g_return_val_if_fail(priv != NULL, NULL); @@ -413,7 +423,8 @@ void purple_conversation_set_name(PurpleConversation *conv, const char *name) { - PurpleConversationPrivate *priv = PURPLE_CONVERSATION_GET_PRIVATE(conv); + PurpleConversationPrivate *priv = + purple_conversation_get_instance_private(conv); g_return_if_fail(priv != NULL); @@ -429,9 +440,10 @@ } const char * -purple_conversation_get_name(const PurpleConversation *conv) +purple_conversation_get_name(PurpleConversation *conv) { - PurpleConversationPrivate *priv = PURPLE_CONVERSATION_GET_PRIVATE(conv); + PurpleConversationPrivate *priv = + purple_conversation_get_instance_private(conv); g_return_val_if_fail(priv != NULL, NULL); @@ -442,7 +454,8 @@ purple_conversation_set_e2ee_state(PurpleConversation *conv, PurpleE2eeState *state) { - PurpleConversationPrivate *priv = PURPLE_CONVERSATION_GET_PRIVATE(conv); + PurpleConversationPrivate *priv = + purple_conversation_get_instance_private(conv); g_return_if_fail(priv != NULL); @@ -469,7 +482,8 @@ PurpleE2eeState * purple_conversation_get_e2ee_state(PurpleConversation *conv) { - PurpleConversationPrivate *priv = PURPLE_CONVERSATION_GET_PRIVATE(conv); + PurpleConversationPrivate *priv = + purple_conversation_get_instance_private(conv); PurpleE2eeProvider *provider; g_return_val_if_fail(priv != NULL, NULL); @@ -493,7 +507,8 @@ void purple_conversation_set_logging(PurpleConversation *conv, gboolean log) { - PurpleConversationPrivate *priv = PURPLE_CONVERSATION_GET_PRIVATE(conv); + PurpleConversationPrivate *priv = + purple_conversation_get_instance_private(conv); g_return_if_fail(priv != NULL); @@ -510,9 +525,10 @@ } gboolean -purple_conversation_is_logging(const PurpleConversation *conv) +purple_conversation_is_logging(PurpleConversation *conv) { - PurpleConversationPrivate *priv = PURPLE_CONVERSATION_GET_PRIVATE(conv); + PurpleConversationPrivate *priv = + purple_conversation_get_instance_private(conv); g_return_val_if_fail(priv != NULL, FALSE); @@ -522,7 +538,8 @@ void purple_conversation_close_logs(PurpleConversation *conv) { - PurpleConversationPrivate *priv = PURPLE_CONVERSATION_GET_PRIVATE(conv); + PurpleConversationPrivate *priv = + purple_conversation_get_instance_private(conv); g_return_if_fail(priv != NULL); @@ -540,7 +557,8 @@ PurpleConversationUiOps *ops; PurpleBuddy *b; int plugin_return; - PurpleConversationPrivate *priv = PURPLE_CONVERSATION_GET_PRIVATE(conv); + PurpleConversationPrivate *priv = + purple_conversation_get_instance_private(conv); /* int logging_font_options = 0; */ g_return_if_fail(priv != NULL); @@ -743,7 +761,8 @@ { char *text; gpointer *data; - PurpleConversationPrivate *priv = PURPLE_CONVERSATION_GET_PRIVATE(conv); + PurpleConversationPrivate *priv = + purple_conversation_get_instance_private(conv); g_return_if_fail(priv != NULL); g_return_if_fail(message != NULL); @@ -781,7 +800,8 @@ void purple_conversation_clear_message_history(PurpleConversation *conv) { GList *list; - PurpleConversationPrivate *priv = PURPLE_CONVERSATION_GET_PRIVATE(conv); + PurpleConversationPrivate *priv = + purple_conversation_get_instance_private(conv); g_return_if_fail(priv != NULL); @@ -795,7 +815,8 @@ GList *purple_conversation_get_message_history(PurpleConversation *conv) { - PurpleConversationPrivate *priv = PURPLE_CONVERSATION_GET_PRIVATE(conv); + PurpleConversationPrivate *priv = + purple_conversation_get_instance_private(conv); g_return_val_if_fail(priv != NULL, NULL); @@ -849,7 +870,7 @@ g_return_if_fail(PURPLE_IS_CONVERSATION(conv)); g_return_if_fail(smiley); - priv = PURPLE_CONVERSATION_GET_PRIVATE(conv); + priv = purple_conversation_get_instance_private(conv); if (priv->remote_smileys == NULL) { priv->remote_smileys = purple_smiley_list_new(); @@ -878,7 +899,7 @@ g_return_val_if_fail(PURPLE_IS_CONVERSATION(conv), NULL); g_return_val_if_fail(shortcut, NULL); - priv = PURPLE_CONVERSATION_GET_PRIVATE(conv); + priv = purple_conversation_get_instance_private(conv); if (priv->remote_smileys == NULL) return NULL; @@ -889,7 +910,8 @@ PurpleSmileyList * purple_conversation_get_remote_smileys(PurpleConversation *conv) { - PurpleConversationPrivate *priv = PURPLE_CONVERSATION_GET_PRIVATE(conv); + PurpleConversationPrivate *priv = + purple_conversation_get_instance_private(conv); g_return_val_if_fail(priv != NULL, NULL); @@ -907,7 +929,8 @@ GParamSpec *pspec) { PurpleConversation *conv = PURPLE_CONVERSATION(obj); - PurpleConversationPrivate *priv = PURPLE_CONVERSATION_GET_PRIVATE(conv); + PurpleConversationPrivate *priv = + purple_conversation_get_instance_private(conv); switch (param_id) { case PROP_ACCOUNT: @@ -962,6 +985,11 @@ } } +static void +purple_conversation_init(PurpleConversation *conv) +{ +} + /* Called when done constructing */ static void purple_conversation_constructed(GObject *object) @@ -971,7 +999,7 @@ PurpleConnection *gc; PurpleConversationUiOps *ops; - parent_class->constructed(object); + G_OBJECT_CLASS(purple_conversation_parent_class)->constructed(object); g_object_get(object, "account", &account, NULL); gc = purple_account_get_connection(account); @@ -1011,7 +1039,8 @@ purple_conversation_finalize(GObject *object) { PurpleConversation *conv = PURPLE_CONVERSATION(object); - PurpleConversationPrivate *priv = PURPLE_CONVERSATION_GET_PRIVATE(conv); + PurpleConversationPrivate *priv = + purple_conversation_get_instance_private(conv); PurpleConversationUiOps *ops = purple_conversation_get_ui_ops(conv); purple_request_close_with_handle(conv); @@ -1037,7 +1066,7 @@ priv->name = NULL; priv->title = NULL; - parent_class->finalize(object); + G_OBJECT_CLASS(purple_conversation_parent_class)->finalize(object); } /* Class initializer function */ @@ -1046,8 +1075,6 @@ { GObjectClass *obj_class = G_OBJECT_CLASS(klass); - parent_class = g_type_class_peek_parent(klass); - obj_class->dispose = purple_conversation_dispose; obj_class->finalize = purple_conversation_finalize; obj_class->constructed = purple_conversation_constructed; @@ -1056,8 +1083,6 @@ obj_class->get_property = purple_conversation_get_property; obj_class->set_property = purple_conversation_set_property; - g_type_class_add_private(klass, sizeof(PurpleConversationPrivate)); - properties[PROP_ACCOUNT] = g_param_spec_object("account", "Account", "The account for the conversation.", PURPLE_TYPE_ACCOUNT, G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS); @@ -1082,30 +1107,3 @@ g_object_class_install_properties(obj_class, PROP_LAST, properties); } - -GType -purple_conversation_get_type(void) -{ - static GType type = 0; - - if(type == 0) { - static const GTypeInfo info = { - sizeof(PurpleConversationClass), - NULL, - NULL, - (GClassInitFunc)purple_conversation_class_init, - NULL, - NULL, - sizeof(PurpleConversation), - 0, - NULL, - NULL, - }; - - type = g_type_register_static(G_TYPE_OBJECT, - "PurpleConversation", - &info, G_TYPE_FLAG_ABSTRACT); - } - - return type; -}
--- a/libpurple/conversation.h Fri Dec 14 08:06:02 2018 +0000 +++ b/libpurple/conversation.h Fri Dec 14 08:25:23 2018 +0000 @@ -333,7 +333,7 @@ * * Returns: The operations structure. */ -PurpleConversationUiOps *purple_conversation_get_ui_ops(const PurpleConversation *conv); +PurpleConversationUiOps *purple_conversation_get_ui_ops(PurpleConversation *conv); /** * purple_conversation_set_account: @@ -359,7 +359,7 @@ * * Returns: (transfer none): The conversation's purple_account. */ -PurpleAccount *purple_conversation_get_account(const PurpleConversation *conv); +PurpleAccount *purple_conversation_get_account(PurpleConversation *conv); /** * purple_conversation_get_connection: @@ -369,7 +369,7 @@ * * Returns: (transfer none): The conversation's purple_connection. */ -PurpleConnection *purple_conversation_get_connection(const PurpleConversation *conv); +PurpleConnection *purple_conversation_get_connection(PurpleConversation *conv); /** * purple_conversation_set_title: @@ -388,7 +388,7 @@ * * Returns: The title. */ -const char *purple_conversation_get_title(const PurpleConversation *conv); +const char *purple_conversation_get_title(PurpleConversation *conv); /** * purple_conversation_autoset_title: @@ -419,7 +419,7 @@ * Returns: The conversation's name. If the conversation is an IM with a * PurpleBuddy, then it's the name of the PurpleBuddy. */ -const char *purple_conversation_get_name(const PurpleConversation *conv); +const char *purple_conversation_get_name(PurpleConversation *conv); /** * purple_conversation_set_e2ee_state: @@ -460,7 +460,7 @@ * * Returns: %TRUE if logging is enabled, or %FALSE otherwise. */ -gboolean purple_conversation_is_logging(const PurpleConversation *conv); +gboolean purple_conversation_is_logging(PurpleConversation *conv); /** * purple_conversation_close_logs:
--- a/libpurple/conversationtypes.c Fri Dec 14 08:06:02 2018 +0000 +++ b/libpurple/conversationtypes.c Fri Dec 14 08:25:23 2018 +0000 @@ -27,19 +27,10 @@ #define SEND_TYPED_TIMEOUT_SECONDS 5 -#define PURPLE_CHAT_CONVERSATION_GET_PRIVATE(obj) \ - (G_TYPE_INSTANCE_GET_PRIVATE((obj), PURPLE_TYPE_CHAT_CONVERSATION, PurpleChatConversationPrivate)) - typedef struct _PurpleChatConversationPrivate PurpleChatConversationPrivate; -#define PURPLE_IM_CONVERSATION_GET_PRIVATE(obj) \ - (G_TYPE_INSTANCE_GET_PRIVATE((obj), PURPLE_TYPE_IM_CONVERSATION, PurpleIMConversationPrivate)) - typedef struct _PurpleIMConversationPrivate PurpleIMConversationPrivate; -#define PURPLE_CHAT_USER_GET_PRIVATE(obj) \ - (G_TYPE_INSTANCE_GET_PRIVATE((obj), PURPLE_TYPE_CHAT_USER, PurpleChatUserPrivate)) - typedef struct _PurpleChatUserPrivate PurpleChatUserPrivate; /* @@ -118,13 +109,17 @@ CU_PROP_LAST }; -static PurpleConversationClass *parent_class; -static GObjectClass *cb_parent_class; - static GParamSpec *chat_properties[CHAT_PROP_LAST]; static GParamSpec *im_properties[IM_PROP_LAST]; static GParamSpec *cu_properties[CU_PROP_LAST]; +G_DEFINE_TYPE_WITH_PRIVATE(PurpleChatConversation, purple_chat_conversation, + PURPLE_TYPE_CONVERSATION); +G_DEFINE_TYPE_WITH_PRIVATE(PurpleIMConversation, purple_im_conversation, + PURPLE_TYPE_CONVERSATION); +G_DEFINE_TYPE_WITH_PRIVATE(PurpleChatUser, purple_chat_user, + G_TYPE_OBJECT); + static int purple_chat_user_compare(PurpleChatUser *a, PurpleChatUser *b); @@ -171,7 +166,8 @@ void purple_im_conversation_set_icon(PurpleIMConversation *im, PurpleBuddyIcon *icon) { - PurpleIMConversationPrivate *priv = PURPLE_IM_CONVERSATION_GET_PRIVATE(im); + PurpleIMConversationPrivate *priv = + purple_im_conversation_get_instance_private(im); g_return_if_fail(priv != NULL); @@ -189,9 +185,10 @@ } PurpleBuddyIcon * -purple_im_conversation_get_icon(const PurpleIMConversation *im) +purple_im_conversation_get_icon(PurpleIMConversation *im) { - PurpleIMConversationPrivate *priv = PURPLE_IM_CONVERSATION_GET_PRIVATE(im); + PurpleIMConversationPrivate *priv = + purple_im_conversation_get_instance_private(im); g_return_val_if_fail(priv != NULL, NULL); @@ -203,7 +200,8 @@ { PurpleAccount *account; const char *name; - PurpleIMConversationPrivate *priv = PURPLE_IM_CONVERSATION_GET_PRIVATE(im); + PurpleIMConversationPrivate *priv = + purple_im_conversation_get_instance_private(im); g_return_if_fail(priv != NULL); @@ -238,9 +236,10 @@ } PurpleIMTypingState -purple_im_conversation_get_typing_state(const PurpleIMConversation *im) +purple_im_conversation_get_typing_state(PurpleIMConversation *im) { - PurpleIMConversationPrivate *priv = PURPLE_IM_CONVERSATION_GET_PRIVATE(im); + PurpleIMConversationPrivate *priv = + purple_im_conversation_get_instance_private(im); g_return_val_if_fail(priv != NULL, 0); @@ -250,7 +249,8 @@ void purple_im_conversation_start_typing_timeout(PurpleIMConversation *im, int timeout) { - PurpleIMConversationPrivate *priv = PURPLE_IM_CONVERSATION_GET_PRIVATE(im); + PurpleIMConversationPrivate *priv = + purple_im_conversation_get_instance_private(im); g_return_if_fail(priv != NULL); @@ -263,7 +263,8 @@ void purple_im_conversation_stop_typing_timeout(PurpleIMConversation *im) { - PurpleIMConversationPrivate *priv = PURPLE_IM_CONVERSATION_GET_PRIVATE(im); + PurpleIMConversationPrivate *priv = + purple_im_conversation_get_instance_private(im); g_return_if_fail(priv != NULL); @@ -275,9 +276,10 @@ } guint -purple_im_conversation_get_typing_timeout(const PurpleIMConversation *im) +purple_im_conversation_get_typing_timeout(PurpleIMConversation *im) { - PurpleIMConversationPrivate *priv = PURPLE_IM_CONVERSATION_GET_PRIVATE(im); + PurpleIMConversationPrivate *priv = + purple_im_conversation_get_instance_private(im); g_return_val_if_fail(priv != NULL, 0); @@ -287,7 +289,8 @@ void purple_im_conversation_set_type_again(PurpleIMConversation *im, unsigned int val) { - PurpleIMConversationPrivate *priv = PURPLE_IM_CONVERSATION_GET_PRIVATE(im); + PurpleIMConversationPrivate *priv = + purple_im_conversation_get_instance_private(im); g_return_if_fail(priv != NULL); @@ -298,9 +301,10 @@ } time_t -purple_im_conversation_get_type_again(const PurpleIMConversation *im) +purple_im_conversation_get_type_again(PurpleIMConversation *im) { - PurpleIMConversationPrivate *priv = PURPLE_IM_CONVERSATION_GET_PRIVATE(im); + PurpleIMConversationPrivate *priv = + purple_im_conversation_get_instance_private(im); g_return_val_if_fail(priv != NULL, 0); @@ -310,7 +314,8 @@ void purple_im_conversation_start_send_typed_timeout(PurpleIMConversation *im) { - PurpleIMConversationPrivate *priv = PURPLE_IM_CONVERSATION_GET_PRIVATE(im); + PurpleIMConversationPrivate *priv = + purple_im_conversation_get_instance_private(im); g_return_if_fail(priv != NULL); @@ -321,7 +326,8 @@ void purple_im_conversation_stop_send_typed_timeout(PurpleIMConversation *im) { - PurpleIMConversationPrivate *priv = PURPLE_IM_CONVERSATION_GET_PRIVATE(im); + PurpleIMConversationPrivate *priv = + purple_im_conversation_get_instance_private(im); g_return_if_fail(priv != NULL); @@ -333,9 +339,10 @@ } guint -purple_im_conversation_get_send_typed_timeout(const PurpleIMConversation *im) +purple_im_conversation_get_send_typed_timeout(PurpleIMConversation *im) { - PurpleIMConversationPrivate *priv = PURPLE_IM_CONVERSATION_GET_PRIVATE(im); + PurpleIMConversationPrivate *priv = + purple_im_conversation_get_instance_private(im); g_return_val_if_fail(priv != NULL, 0); @@ -413,7 +420,7 @@ } /* GObject initialization function */ -static void purple_im_conversation_init(GTypeInstance *instance, gpointer klass) +static void purple_im_conversation_init(PurpleIMConversation *im) { } @@ -426,7 +433,8 @@ PurpleBuddyIcon *icon; gchar *name; - G_OBJECT_CLASS(parent_class)->constructed(object); + G_OBJECT_CLASS(purple_im_conversation_parent_class)-> + constructed(object); g_object_get(object, "account", &account, @@ -451,14 +459,16 @@ static void purple_im_conversation_dispose(GObject *object) { - PurpleIMConversationPrivate *priv = PURPLE_IM_CONVERSATION_GET_PRIVATE(object); + PurpleIMConversationPrivate *priv = + purple_im_conversation_get_instance_private( + PURPLE_IM_CONVERSATION(object)); if (priv->icon) { purple_buddy_icon_unref(priv->icon); priv->icon = NULL; } - G_OBJECT_CLASS(parent_class)->dispose(object); + G_OBJECT_CLASS(purple_im_conversation_parent_class)->dispose(object); } /* GObject finalize function */ @@ -484,7 +494,7 @@ purple_im_conversation_stop_typing_timeout(im); purple_im_conversation_stop_send_typed_timeout(im); - G_OBJECT_CLASS(parent_class)->finalize(object); + G_OBJECT_CLASS(purple_im_conversation_parent_class)->finalize(object); } /* Class initializer function */ @@ -493,8 +503,6 @@ GObjectClass *obj_class = G_OBJECT_CLASS(klass); PurpleConversationClass *conv_class = PURPLE_CONVERSATION_CLASS(klass); - parent_class = g_type_class_peek_parent(klass); - obj_class->dispose = purple_im_conversation_dispose; obj_class->finalize = purple_im_conversation_finalize; obj_class->constructed = purple_im_conversation_constructed; @@ -505,8 +513,6 @@ conv_class->write_message = im_conversation_write_message; - g_type_class_add_private(klass, sizeof(PurpleIMConversationPrivate)); - im_properties[IM_PROP_TYPING_STATE] = g_param_spec_enum("typing-state", "Typing state", "Status of the user's typing of a message.", @@ -523,33 +529,6 @@ g_object_class_install_properties(obj_class, IM_PROP_LAST, im_properties); } -GType -purple_im_conversation_get_type(void) -{ - static GType type = 0; - - if(type == 0) { - static const GTypeInfo info = { - sizeof(PurpleIMConversationClass), - NULL, - NULL, - (GClassInitFunc)purple_im_conversation_class_init, - NULL, - NULL, - sizeof(PurpleIMConversation), - 0, - (GInstanceInitFunc)purple_im_conversation_init, - NULL, - }; - - type = g_type_register_static(PURPLE_TYPE_CONVERSATION, - "PurpleIMConversation", - &info, 0); - } - - return type; -} - PurpleIMConversation * purple_im_conversation_new(PurpleAccount *account, const char *name) { @@ -598,9 +577,10 @@ } GList * -purple_chat_conversation_get_users(const PurpleChatConversation *chat) +purple_chat_conversation_get_users(PurpleChatConversation *chat) { - PurpleChatConversationPrivate *priv = PURPLE_CHAT_CONVERSATION_GET_PRIVATE(chat); + PurpleChatConversationPrivate *priv = + purple_chat_conversation_get_instance_private(chat); g_return_val_if_fail(priv != NULL, NULL); @@ -608,9 +588,10 @@ } guint -purple_chat_conversation_get_users_count(const PurpleChatConversation *chat) +purple_chat_conversation_get_users_count(PurpleChatConversation *chat) { - PurpleChatConversationPrivate *priv = PURPLE_CHAT_CONVERSATION_GET_PRIVATE(chat); + PurpleChatConversationPrivate *priv = + purple_chat_conversation_get_instance_private(chat); g_return_val_if_fail(priv != NULL, 0); @@ -620,7 +601,8 @@ void purple_chat_conversation_ignore(PurpleChatConversation *chat, const char *name) { - PurpleChatConversationPrivate *priv = PURPLE_CHAT_CONVERSATION_GET_PRIVATE(chat); + PurpleChatConversationPrivate *priv = + purple_chat_conversation_get_instance_private(chat); g_return_if_fail(priv != NULL); g_return_if_fail(name != NULL); @@ -637,7 +619,8 @@ purple_chat_conversation_unignore(PurpleChatConversation *chat, const char *name) { GList *item; - PurpleChatConversationPrivate *priv = PURPLE_CHAT_CONVERSATION_GET_PRIVATE(chat); + PurpleChatConversationPrivate *priv = + purple_chat_conversation_get_instance_private(chat); g_return_if_fail(priv != NULL); g_return_if_fail(name != NULL); @@ -659,7 +642,8 @@ GList * purple_chat_conversation_set_ignored(PurpleChatConversation *chat, GList *ignored) { - PurpleChatConversationPrivate *priv = PURPLE_CHAT_CONVERSATION_GET_PRIVATE(chat); + PurpleChatConversationPrivate *priv = + purple_chat_conversation_get_instance_private(chat); g_return_val_if_fail(priv != NULL, NULL); @@ -668,9 +652,10 @@ } GList * -purple_chat_conversation_get_ignored(const PurpleChatConversation *chat) +purple_chat_conversation_get_ignored(PurpleChatConversation *chat) { - PurpleChatConversationPrivate *priv = PURPLE_CHAT_CONVERSATION_GET_PRIVATE(chat); + PurpleChatConversationPrivate *priv = + purple_chat_conversation_get_instance_private(chat); g_return_val_if_fail(priv != NULL, NULL); @@ -678,7 +663,7 @@ } const char * -purple_chat_conversation_get_ignored_user(const PurpleChatConversation *chat, const char *user) +purple_chat_conversation_get_ignored_user(PurpleChatConversation *chat, const char *user) { GList *ignored; @@ -708,7 +693,7 @@ } gboolean -purple_chat_conversation_is_ignored_user(const PurpleChatConversation *chat, const char *user) +purple_chat_conversation_is_ignored_user(PurpleChatConversation *chat, const char *user) { g_return_val_if_fail(PURPLE_IS_CHAT_CONVERSATION(chat), FALSE); g_return_val_if_fail(user != NULL, FALSE); @@ -719,7 +704,8 @@ void purple_chat_conversation_set_topic(PurpleChatConversation *chat, const char *who, const char *topic) { - PurpleChatConversationPrivate *priv = PURPLE_CHAT_CONVERSATION_GET_PRIVATE(chat); + PurpleChatConversationPrivate *priv = + purple_chat_conversation_get_instance_private(chat); GObject *obj; g_return_if_fail(priv != NULL); @@ -744,9 +730,10 @@ } const char * -purple_chat_conversation_get_topic(const PurpleChatConversation *chat) +purple_chat_conversation_get_topic(PurpleChatConversation *chat) { - PurpleChatConversationPrivate *priv = PURPLE_CHAT_CONVERSATION_GET_PRIVATE(chat); + PurpleChatConversationPrivate *priv = + purple_chat_conversation_get_instance_private(chat); g_return_val_if_fail(priv != NULL, NULL); @@ -754,9 +741,10 @@ } const char * -purple_chat_conversation_get_topic_who(const PurpleChatConversation *chat) +purple_chat_conversation_get_topic_who(PurpleChatConversation *chat) { - PurpleChatConversationPrivate *priv = PURPLE_CHAT_CONVERSATION_GET_PRIVATE(chat); + PurpleChatConversationPrivate *priv = + purple_chat_conversation_get_instance_private(chat); g_return_val_if_fail(priv != NULL, NULL); @@ -766,7 +754,8 @@ void purple_chat_conversation_set_id(PurpleChatConversation *chat, int id) { - PurpleChatConversationPrivate *priv = PURPLE_CHAT_CONVERSATION_GET_PRIVATE(chat); + PurpleChatConversationPrivate *priv = + purple_chat_conversation_get_instance_private(chat); g_return_if_fail(priv != NULL); @@ -776,9 +765,10 @@ } int -purple_chat_conversation_get_id(const PurpleChatConversation *chat) +purple_chat_conversation_get_id(PurpleChatConversation *chat) { - PurpleChatConversationPrivate *priv = PURPLE_CHAT_CONVERSATION_GET_PRIVATE(chat); + PurpleChatConversationPrivate *priv = + purple_chat_conversation_get_instance_private(chat); g_return_val_if_fail(priv != NULL, -1); @@ -788,7 +778,9 @@ static void chat_conversation_write_message(PurpleConversation *conv, PurpleMessage *msg) { - PurpleChatConversationPrivate *priv = PURPLE_CHAT_CONVERSATION_GET_PRIVATE(conv); + PurpleChatConversationPrivate *priv = + purple_chat_conversation_get_instance_private( + PURPLE_CHAT_CONVERSATION(conv)); PurpleMessageFlags flags; g_return_if_fail(priv != NULL); @@ -842,7 +834,7 @@ GList *ul, *fl; GList *cbuddies = NULL; - priv = PURPLE_CHAT_CONVERSATION_GET_PRIVATE(chat); + priv = purple_chat_conversation_get_instance_private(chat); g_return_if_fail(priv != NULL); g_return_if_fail(users != NULL); @@ -946,7 +938,7 @@ char tmp[BUF_LONG]; gboolean is_me = FALSE; - priv = PURPLE_CHAT_CONVERSATION_GET_PRIVATE(chat); + priv = purple_chat_conversation_get_instance_private(chat); g_return_if_fail(priv != NULL); g_return_if_fail(old_user != NULL); @@ -1066,7 +1058,7 @@ GList *l; gboolean quiet; - priv = PURPLE_CHAT_CONVERSATION_GET_PRIVATE(chat); + priv = purple_chat_conversation_get_instance_private(chat); g_return_if_fail(priv != NULL); g_return_if_fail(users != NULL); @@ -1137,7 +1129,8 @@ { PurpleConversationUiOps *ops; GHashTableIter it; - PurpleChatConversationPrivate *priv = PURPLE_CHAT_CONVERSATION_GET_PRIVATE(chat); + PurpleChatConversationPrivate *priv = + purple_chat_conversation_get_instance_private(chat); gchar *name; g_return_if_fail(priv != NULL); @@ -1167,7 +1160,8 @@ } void purple_chat_conversation_set_nick(PurpleChatConversation *chat, const char *nick) { - PurpleChatConversationPrivate *priv = PURPLE_CHAT_CONVERSATION_GET_PRIVATE(chat); + PurpleChatConversationPrivate *priv = + purple_chat_conversation_get_instance_private(chat); g_return_if_fail(priv != NULL); @@ -1179,7 +1173,8 @@ } const char *purple_chat_conversation_get_nick(PurpleChatConversation *chat) { - PurpleChatConversationPrivate *priv = PURPLE_CHAT_CONVERSATION_GET_PRIVATE(chat); + PurpleChatConversationPrivate *priv = + purple_chat_conversation_get_instance_private(chat); g_return_val_if_fail(priv != NULL, NULL); @@ -1194,7 +1189,8 @@ const char *user, *message; conv = data; - priv = PURPLE_CHAT_CONVERSATION_GET_PRIVATE(conv); + priv = purple_chat_conversation_get_instance_private( + PURPLE_CHAT_CONVERSATION(conv)); user = purple_request_fields_get_string(fields, "screenname"); message = purple_request_fields_get_string(fields, "message"); @@ -1256,7 +1252,8 @@ void purple_chat_conversation_leave(PurpleChatConversation *chat) { - PurpleChatConversationPrivate *priv = PURPLE_CHAT_CONVERSATION_GET_PRIVATE(chat); + PurpleChatConversationPrivate *priv = + purple_chat_conversation_get_instance_private(chat); g_return_if_fail(priv != NULL); @@ -1271,7 +1268,8 @@ gboolean purple_chat_conversation_has_left(PurpleChatConversation *chat) { - PurpleChatConversationPrivate *priv = PURPLE_CHAT_CONVERSATION_GET_PRIVATE(chat); + PurpleChatConversationPrivate *priv = + purple_chat_conversation_get_instance_private(chat); g_return_val_if_fail(priv != NULL, TRUE); @@ -1285,7 +1283,8 @@ PurpleAccount *account; PurpleConnection *gc; PurpleConversation *conv = PURPLE_CONVERSATION(chat); - PurpleChatConversationPrivate *priv = PURPLE_CHAT_CONVERSATION_GET_PRIVATE(chat); + PurpleChatConversationPrivate *priv = + purple_chat_conversation_get_instance_private(chat); account = purple_conversation_get_account(conv); @@ -1314,7 +1313,8 @@ PurpleChatUser * purple_chat_conversation_find_user(PurpleChatConversation *chat, const char *name) { - PurpleChatConversationPrivate *priv = PURPLE_CHAT_CONVERSATION_GET_PRIVATE(chat); + PurpleChatConversationPrivate *priv = + purple_chat_conversation_get_instance_private(chat); g_return_val_if_fail(priv != NULL, NULL); g_return_val_if_fail(name != NULL, NULL); @@ -1383,9 +1383,10 @@ } /* GObject initialization function */ -static void purple_chat_conversation_init(GTypeInstance *instance, gpointer klass) +static void purple_chat_conversation_init(PurpleChatConversation *chat) { - PurpleChatConversationPrivate *priv = PURPLE_CHAT_CONVERSATION_GET_PRIVATE(instance); + PurpleChatConversationPrivate *priv = + purple_chat_conversation_get_instance_private(chat); priv->users = g_hash_table_new_full(_purple_conversation_user_hash, _purple_conversation_user_equal, g_free, g_object_unref); @@ -1399,7 +1400,8 @@ PurpleAccount *account; const char *disp; - G_OBJECT_CLASS(parent_class)->constructed(object); + G_OBJECT_CLASS(purple_chat_conversation_parent_class)-> + constructed(object); g_object_get(object, "account", &account, NULL); @@ -1420,11 +1422,12 @@ purple_chat_conversation_dispose(GObject *object) { PurpleChatConversationPrivate *priv = - PURPLE_CHAT_CONVERSATION_GET_PRIVATE(object); + purple_chat_conversation_get_instance_private + (PURPLE_CHAT_CONVERSATION(object)); g_hash_table_remove_all(priv->users); - G_OBJECT_CLASS(parent_class)->dispose(object); + G_OBJECT_CLASS(purple_chat_conversation_parent_class)->dispose(object); } /* GObject finalize function */ @@ -1433,7 +1436,8 @@ { PurpleChatConversation *chat = PURPLE_CHAT_CONVERSATION(object); PurpleConnection *gc = purple_conversation_get_connection(PURPLE_CONVERSATION(chat)); - PurpleChatConversationPrivate *priv = PURPLE_CHAT_CONVERSATION_GET_PRIVATE(chat); + PurpleChatConversationPrivate *priv = + purple_chat_conversation_get_instance_private(chat); if (gc != NULL) { @@ -1471,7 +1475,7 @@ priv->topic = NULL; priv->nick = NULL; - G_OBJECT_CLASS(parent_class)->finalize(object); + G_OBJECT_CLASS(purple_chat_conversation_parent_class)->finalize(object); } /* Class initializer function */ @@ -1480,8 +1484,6 @@ GObjectClass *obj_class = G_OBJECT_CLASS(klass); PurpleConversationClass *conv_class = PURPLE_CONVERSATION_CLASS(klass); - parent_class = g_type_class_peek_parent(klass); - obj_class->dispose = purple_chat_conversation_dispose; obj_class->finalize = purple_chat_conversation_finalize; obj_class->constructed = purple_chat_conversation_constructed; @@ -1492,8 +1494,6 @@ conv_class->write_message = chat_conversation_write_message; - g_type_class_add_private(klass, sizeof(PurpleChatConversationPrivate)); - chat_properties[CHAT_PROP_TOPIC_WHO] = g_param_spec_string("topic-who", "Who set topic", "Who set the chat topic.", NULL, @@ -1523,33 +1523,6 @@ chat_properties); } -GType -purple_chat_conversation_get_type(void) -{ - static GType type = 0; - - if(type == 0) { - static const GTypeInfo info = { - sizeof(PurpleChatConversationClass), - NULL, - NULL, - (GClassInitFunc)purple_chat_conversation_class_init, - NULL, - NULL, - sizeof(PurpleChatConversation), - 0, - (GInstanceInitFunc)purple_chat_conversation_init, - NULL, - }; - - type = g_type_register_static(PURPLE_TYPE_CONVERSATION, - "PurpleChatConversation", - &info, 0); - } - - return type; -} - PurpleChatConversation * purple_chat_conversation_new(PurpleAccount *account, const char *name) { @@ -1604,8 +1577,8 @@ char *user1 = NULL, *user2 = NULL; gint ret = 0; - priva = PURPLE_CHAT_USER_GET_PRIVATE(a); - privb = PURPLE_CHAT_USER_GET_PRIVATE(b); + priva = purple_chat_user_get_instance_private(a); + privb = purple_chat_user_get_instance_private(b); if (priva) { f1 = priva->flags; @@ -1639,10 +1612,10 @@ } const char * -purple_chat_user_get_alias(const PurpleChatUser *cb) +purple_chat_user_get_alias(PurpleChatUser *cb) { PurpleChatUserPrivate *priv; - priv = PURPLE_CHAT_USER_GET_PRIVATE(cb); + priv = purple_chat_user_get_instance_private(cb); g_return_val_if_fail(priv != NULL, NULL); @@ -1650,10 +1623,10 @@ } const char * -purple_chat_user_get_name(const PurpleChatUser *cb) +purple_chat_user_get_name(PurpleChatUser *cb) { PurpleChatUserPrivate *priv; - priv = PURPLE_CHAT_USER_GET_PRIVATE(cb); + priv = purple_chat_user_get_instance_private(cb); g_return_val_if_fail(priv != NULL, NULL); @@ -1667,7 +1640,7 @@ PurpleConversationUiOps *ops; PurpleChatUserFlags oldflags; PurpleChatUserPrivate *priv; - priv = PURPLE_CHAT_USER_GET_PRIVATE(cb); + priv = purple_chat_user_get_instance_private(cb); g_return_if_fail(priv != NULL); @@ -1689,10 +1662,10 @@ } PurpleChatUserFlags -purple_chat_user_get_flags(const PurpleChatUser *cb) +purple_chat_user_get_flags(PurpleChatUser *cb) { PurpleChatUserPrivate *priv; - priv = PURPLE_CHAT_USER_GET_PRIVATE(cb); + priv = purple_chat_user_get_instance_private(cb); g_return_val_if_fail(priv != NULL, PURPLE_CHAT_USER_NONE); @@ -1708,7 +1681,7 @@ } gpointer -purple_chat_user_get_ui_data(const PurpleChatUser *cb) +purple_chat_user_get_ui_data(PurpleChatUser *cb) { g_return_val_if_fail(PURPLE_IS_CHAT_USER(cb), NULL); @@ -1720,7 +1693,7 @@ PurpleChatConversation *chat) { PurpleChatUserPrivate *priv; - priv = PURPLE_CHAT_USER_GET_PRIVATE(cb); + priv = purple_chat_user_get_instance_private(cb); g_return_if_fail(priv != NULL); @@ -1730,10 +1703,10 @@ } PurpleChatConversation * -purple_chat_user_get_chat(const PurpleChatUser *cb) +purple_chat_user_get_chat(PurpleChatUser *cb) { PurpleChatUserPrivate *priv; - priv = PURPLE_CHAT_USER_GET_PRIVATE(cb); + priv = purple_chat_user_get_instance_private(cb); g_return_val_if_fail(priv != NULL, NULL); @@ -1741,10 +1714,10 @@ } gboolean -purple_chat_user_is_buddy(const PurpleChatUser *cb) +purple_chat_user_is_buddy(PurpleChatUser *cb) { PurpleChatUserPrivate *priv; - priv = PURPLE_CHAT_USER_GET_PRIVATE(cb); + priv = purple_chat_user_get_instance_private(cb); g_return_val_if_fail(priv != NULL, FALSE); @@ -1761,7 +1734,8 @@ GParamSpec *pspec) { PurpleChatUser *cb = PURPLE_CHAT_USER(obj); - PurpleChatUserPrivate *priv = PURPLE_CHAT_USER_GET_PRIVATE(cb); + PurpleChatUserPrivate *priv = + purple_chat_user_get_instance_private(cb); switch (param_id) { case CU_PROP_CHAT: @@ -1812,7 +1786,7 @@ /* GObject initialization function */ static void -purple_chat_user_init(GTypeInstance *instance, gpointer klass) +purple_chat_user_init(PurpleChatUser *user) { } @@ -1820,10 +1794,11 @@ static void purple_chat_user_constructed(GObject *object) { - PurpleChatUserPrivate *priv = PURPLE_CHAT_USER_GET_PRIVATE(object); + PurpleChatUserPrivate *priv = purple_chat_user_get_instance_private( + PURPLE_CHAT_USER(object)); PurpleAccount *account; - cb_parent_class->constructed(object); + G_OBJECT_CLASS(purple_chat_user_parent_class)->constructed(object); account = purple_conversation_get_account(PURPLE_CONVERSATION(priv->chat)); @@ -1836,7 +1811,8 @@ purple_chat_user_finalize(GObject *object) { PurpleChatUser *cb = PURPLE_CHAT_USER(object); - PurpleChatUserPrivate *priv = PURPLE_CHAT_USER_GET_PRIVATE(cb); + PurpleChatUserPrivate *priv = + purple_chat_user_get_instance_private(cb); purple_signal_emit(purple_conversations_get_handle(), "deleting-chat-user", cb); @@ -1845,7 +1821,7 @@ g_free(priv->alias_key); g_free(priv->name); - cb_parent_class->finalize(object); + G_OBJECT_CLASS(purple_chat_user_parent_class)->finalize(object); } /* Class initializer function */ @@ -1853,8 +1829,6 @@ { GObjectClass *obj_class = G_OBJECT_CLASS(klass); - cb_parent_class = g_type_class_peek_parent(klass); - obj_class->constructed = purple_chat_user_constructed; obj_class->finalize = purple_chat_user_finalize; @@ -1862,8 +1836,6 @@ obj_class->get_property = purple_chat_user_get_property; obj_class->set_property = purple_chat_user_set_property; - g_type_class_add_private(klass, sizeof(PurpleChatUserPrivate)); - cu_properties[CU_PROP_CHAT] = g_param_spec_object("chat", "Chat", "The chat the buddy belongs to.", PURPLE_TYPE_CHAT_CONVERSATION, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | @@ -1885,33 +1857,6 @@ g_object_class_install_properties(obj_class, CU_PROP_LAST, cu_properties); } -GType -purple_chat_user_get_type(void) -{ - static GType type = 0; - - if(type == 0) { - static const GTypeInfo info = { - sizeof(PurpleChatUserClass), - NULL, - NULL, - (GClassInitFunc)purple_chat_user_class_init, - NULL, - NULL, - sizeof(PurpleChatUser), - 0, - (GInstanceInitFunc)purple_chat_user_init, - NULL, - }; - - type = g_type_register_static(G_TYPE_OBJECT, - "PurpleChatUser", - &info, 0); - } - - return type; -} - PurpleChatUser * purple_chat_user_new(PurpleChatConversation *chat, const char *name, const char *alias, PurpleChatUserFlags flags)
--- a/libpurple/conversationtypes.h Fri Dec 14 08:06:02 2018 +0000 +++ b/libpurple/conversationtypes.h Fri Dec 14 08:25:23 2018 +0000 @@ -241,7 +241,7 @@ * * Returns: The buddy icon. */ -PurpleBuddyIcon *purple_im_conversation_get_icon(const PurpleIMConversation *im); +PurpleBuddyIcon *purple_im_conversation_get_icon(PurpleIMConversation *im); /** * purple_im_conversation_set_typing_state: @@ -260,7 +260,7 @@ * * Returns: The IM's typing state. */ -PurpleIMTypingState purple_im_conversation_get_typing_state(const PurpleIMConversation *im); +PurpleIMTypingState purple_im_conversation_get_typing_state(PurpleIMConversation *im); /** * purple_im_conversation_start_typing_timeout: @@ -288,7 +288,7 @@ * * Returns: The timeout. */ -guint purple_im_conversation_get_typing_timeout(const PurpleIMConversation *im); +guint purple_im_conversation_get_typing_timeout(PurpleIMConversation *im); /** * purple_im_conversation_set_type_again: @@ -313,7 +313,7 @@ * Returns: The time in seconds since the epoch. Or 0 if no additional * PURPLE_IM_TYPING message should be sent. */ -time_t purple_im_conversation_get_type_again(const PurpleIMConversation *im); +time_t purple_im_conversation_get_type_again(PurpleIMConversation *im); /** * purple_im_conversation_start_send_typed_timeout: @@ -339,7 +339,7 @@ * * Returns: The type again timeout interval. */ -guint purple_im_conversation_get_send_typed_timeout(const PurpleIMConversation *im); +guint purple_im_conversation_get_send_typed_timeout(PurpleIMConversation *im); /** * purple_im_conversation_update_typing: @@ -384,7 +384,7 @@ * The list of users. Use g_list_free() when done * using the list. */ -GList *purple_chat_conversation_get_users(const PurpleChatConversation *chat); +GList *purple_chat_conversation_get_users(PurpleChatConversation *chat); /** * purple_chat_conversation_get_users_count: @@ -395,7 +395,7 @@ * Returns: The count of users in the chat room. */ guint -purple_chat_conversation_get_users_count(const PurpleChatConversation *chat); +purple_chat_conversation_get_users_count(PurpleChatConversation *chat); /** * purple_chat_conversation_ignore: @@ -437,7 +437,7 @@ * Returns: (element-type char*) (transfer none): * The list of ignored users. */ -GList *purple_chat_conversation_get_ignored(const PurpleChatConversation *chat); +GList *purple_chat_conversation_get_ignored(PurpleChatConversation *chat); /** * purple_chat_conversation_get_ignored_user: @@ -454,7 +454,7 @@ * Returns: The ignored user if found, complete with prefixes, or %NULL * if not found. */ -const char *purple_chat_conversation_get_ignored_user(const PurpleChatConversation *chat, +const char *purple_chat_conversation_get_ignored_user(PurpleChatConversation *chat, const char *user); /** @@ -466,7 +466,7 @@ * * Returns: %TRUE if the user is in the ignore list; %FALSE otherwise. */ -gboolean purple_chat_conversation_is_ignored_user(const PurpleChatConversation *chat, +gboolean purple_chat_conversation_is_ignored_user(PurpleChatConversation *chat, const char *user); /** @@ -488,7 +488,7 @@ * * Returns: The chat's topic. */ -const char *purple_chat_conversation_get_topic(const PurpleChatConversation *chat); +const char *purple_chat_conversation_get_topic(PurpleChatConversation *chat); /** * purple_chat_conversation_get_topic_who: @@ -498,7 +498,7 @@ * * Returns: Who set the topic. */ -const char *purple_chat_conversation_get_topic_who(const PurpleChatConversation *chat); +const char *purple_chat_conversation_get_topic_who(PurpleChatConversation *chat); /** * purple_chat_conversation_set_id: @@ -517,7 +517,7 @@ * * Returns: The ID. */ -int purple_chat_conversation_get_id(const PurpleChatConversation *chat); +int purple_chat_conversation_get_id(PurpleChatConversation *chat); /** * purple_chat_conversation_add_user: @@ -714,7 +714,7 @@ * Returns: (transfer none): * The chat conversation that the buddy belongs to. */ -PurpleChatConversation *purple_chat_user_get_chat(const PurpleChatUser *cb); +PurpleChatConversation *purple_chat_user_get_chat(PurpleChatUser *cb); /** * purple_chat_user_new: @@ -750,7 +750,7 @@ * convenience field provided to the UIs--it is not * used by the libpurple core. */ -gpointer purple_chat_user_get_ui_data(const PurpleChatUser *cb); +gpointer purple_chat_user_get_ui_data(PurpleChatUser *cb); /** * purple_chat_user_get_alias: @@ -760,7 +760,7 @@ * * Returns: The alias of the chat user. */ -const char *purple_chat_user_get_alias(const PurpleChatUser *cb); +const char *purple_chat_user_get_alias(PurpleChatUser *cb); /** * purple_chat_user_get_name: @@ -770,7 +770,7 @@ * * Returns: The name of the chat user. */ -const char *purple_chat_user_get_name(const PurpleChatUser *cb); +const char *purple_chat_user_get_name(PurpleChatUser *cb); /** * purple_chat_user_set_flags: @@ -789,7 +789,7 @@ * * Returns: The flags of the chat user. */ -PurpleChatUserFlags purple_chat_user_get_flags(const PurpleChatUser *cb); +PurpleChatUserFlags purple_chat_user_get_flags(PurpleChatUser *cb); /** * purple_chat_user_is_buddy: @@ -799,7 +799,7 @@ * * Returns: TRUE if the chat user is on the buddy list. */ -gboolean purple_chat_user_is_buddy(const PurpleChatUser *cb); +gboolean purple_chat_user_is_buddy(PurpleChatUser *cb); G_END_DECLS
--- a/libpurple/plugins.c Fri Dec 14 08:06:02 2018 +0000 +++ b/libpurple/plugins.c Fri Dec 14 08:25:23 2018 +0000 @@ -26,9 +26,6 @@ #include "enums.h" #include "plugins.h" -#define PURPLE_PLUGIN_INFO_GET_PRIVATE(obj) \ - (G_TYPE_INSTANCE_GET_PRIVATE((obj), PURPLE_TYPE_PLUGIN_INFO, PurplePluginInfoPrivate)) - typedef struct _PurplePluginInfoPrivate PurplePluginInfoPrivate; /************************************************************************** @@ -69,7 +66,13 @@ PROP_LAST }; -static GObjectClass *parent_class; +G_DEFINE_TYPE_WITH_PRIVATE(PurplePluginInfo, purple_plugin_info, +#ifdef PURPLE_PLUGINS + GPLUGIN_TYPE_PLUGIN_INFO +#else + G_TYPE_OBJECT +#endif + ); /************************************************************************** * Globals @@ -96,7 +99,7 @@ if (!info) return TRUE; /* a GPlugin internal plugin */ - priv = PURPLE_PLUGIN_INFO_GET_PRIVATE(info); + priv = purple_plugin_info_get_instance_private(info); if (priv->error) { purple_debug_error("plugins", "Failed to load plugin %s: %s", @@ -159,7 +162,7 @@ if (!info) return; /* a GPlugin internal plugin */ - priv = PURPLE_PLUGIN_INFO_GET_PRIVATE(info); + priv = purple_plugin_info_get_instance_private(info); /* cancel any pending dialogs the plugin has */ purple_request_close_with_handle(plugin); @@ -365,7 +368,7 @@ **************************************************************************/ /* GObject initialization function */ static void -purple_plugin_info_init(GTypeInstance *instance, gpointer klass) +purple_plugin_info_init(PurplePluginInfo *info) { } @@ -375,7 +378,8 @@ GParamSpec *pspec) { PurplePluginInfo *info = PURPLE_PLUGIN_INFO(obj); - PurplePluginInfoPrivate *priv = PURPLE_PLUGIN_INFO_GET_PRIVATE(info); + PurplePluginInfoPrivate *priv = + purple_plugin_info_get_instance_private(info); switch (param_id) { case PROP_UI_REQUIREMENT: @@ -440,11 +444,12 @@ purple_plugin_info_constructed(GObject *object) { PurplePluginInfo *info = PURPLE_PLUGIN_INFO(object); - PurplePluginInfoPrivate *priv = PURPLE_PLUGIN_INFO_GET_PRIVATE(info); + PurplePluginInfoPrivate *priv = + purple_plugin_info_get_instance_private(info); const char *id = purple_plugin_info_get_id(info); guint32 version; - parent_class->constructed(object); + G_OBJECT_CLASS(purple_plugin_info_parent_class)->constructed(object); if (id == NULL || *id == '\0') priv->error = g_strdup(_("This plugin has not defined an ID.")); @@ -476,12 +481,14 @@ static void purple_plugin_info_finalize(GObject *object) { - PurplePluginInfoPrivate *priv = PURPLE_PLUGIN_INFO_GET_PRIVATE(object); + PurplePluginInfoPrivate *priv = + purple_plugin_info_get_instance_private( + PURPLE_PLUGIN_INFO(object)); g_free(priv->ui_requirement); g_free(priv->error); - parent_class->finalize(object); + G_OBJECT_CLASS(purple_plugin_info_parent_class)->finalize(object); } /* Class initializer function */ @@ -489,10 +496,6 @@ { GObjectClass *obj_class = G_OBJECT_CLASS(klass); - parent_class = g_type_class_peek_parent(klass); - - g_type_class_add_private(klass, sizeof(PurplePluginInfoPrivate)); - obj_class->constructed = purple_plugin_info_constructed; obj_class->finalize = purple_plugin_info_finalize; @@ -546,31 +549,6 @@ /************************************************************************** * PluginInfo API **************************************************************************/ -GType -purple_plugin_info_get_type(void) -{ - static GType type = 0; - - if (G_UNLIKELY(type == 0)) { - static const GTypeInfo info = { - .class_size = sizeof(PurplePluginInfoClass), - .class_init = (GClassInitFunc)purple_plugin_info_class_init, - .instance_size = sizeof(PurplePluginInfo), - .instance_init = (GInstanceInitFunc)purple_plugin_info_init, - }; - - type = g_type_register_static( -#ifdef PURPLE_PLUGINS - GPLUGIN_TYPE_PLUGIN_INFO, -#else - G_TYPE_OBJECT, -#endif - "PurplePluginInfo", &info, 0); - } - - return type; -} - PurplePluginInfo * purple_plugin_info_new(const char *first_property, ...) { @@ -772,9 +750,10 @@ } PurplePluginActionsCb -purple_plugin_info_get_actions_cb(const PurplePluginInfo *info) +purple_plugin_info_get_actions_cb(PurplePluginInfo *info) { - PurplePluginInfoPrivate *priv = PURPLE_PLUGIN_INFO_GET_PRIVATE(info); + PurplePluginInfoPrivate *priv = + purple_plugin_info_get_instance_private(info); g_return_val_if_fail(priv != NULL, NULL); @@ -782,9 +761,10 @@ } PurplePluginExtraCb -purple_plugin_info_get_extra_cb(const PurplePluginInfo *info) +purple_plugin_info_get_extra_cb(PurplePluginInfo *info) { - PurplePluginInfoPrivate *priv = PURPLE_PLUGIN_INFO_GET_PRIVATE(info); + PurplePluginInfoPrivate *priv = + purple_plugin_info_get_instance_private(info); g_return_val_if_fail(priv != NULL, NULL); @@ -792,9 +772,10 @@ } PurplePluginPrefFrameCb -purple_plugin_info_get_pref_frame_cb(const PurplePluginInfo *info) +purple_plugin_info_get_pref_frame_cb(PurplePluginInfo *info) { - PurplePluginInfoPrivate *priv = PURPLE_PLUGIN_INFO_GET_PRIVATE(info); + PurplePluginInfoPrivate *priv = + purple_plugin_info_get_instance_private(info); g_return_val_if_fail(priv != NULL, NULL); @@ -802,9 +783,10 @@ } PurplePluginPrefRequestCb -purple_plugin_info_get_pref_request_cb(const PurplePluginInfo *info) +purple_plugin_info_get_pref_request_cb(PurplePluginInfo *info) { - PurplePluginInfoPrivate *priv = PURPLE_PLUGIN_INFO_GET_PRIVATE(info); + PurplePluginInfoPrivate *priv = + purple_plugin_info_get_instance_private(info); g_return_val_if_fail(priv != NULL, NULL); @@ -812,9 +794,10 @@ } PurplePluginInfoFlags -purple_plugin_info_get_flags(const PurplePluginInfo *info) +purple_plugin_info_get_flags(PurplePluginInfo *info) { - PurplePluginInfoPrivate *priv = PURPLE_PLUGIN_INFO_GET_PRIVATE(info); + PurplePluginInfoPrivate *priv = + purple_plugin_info_get_instance_private(info); g_return_val_if_fail(priv != NULL, 0); @@ -822,9 +805,10 @@ } const gchar * -purple_plugin_info_get_error(const PurplePluginInfo *info) +purple_plugin_info_get_error(PurplePluginInfo *info) { - PurplePluginInfoPrivate *priv = PURPLE_PLUGIN_INFO_GET_PRIVATE(info); + PurplePluginInfoPrivate *priv = + purple_plugin_info_get_instance_private(info); g_return_val_if_fail(priv != NULL, NULL); @@ -964,7 +948,7 @@ continue; info = purple_plugin_get_info(plugin); - priv = PURPLE_PLUGIN_INFO_GET_PRIVATE(info); + priv = purple_plugin_info_get_instance_private(info); if (!priv->unloaded && purple_plugin_info_get_flags(info) & PURPLE_PLUGIN_INFO_FLAGS_AUTO_LOAD) {
--- a/libpurple/plugins.h Fri Dec 14 08:06:02 2018 +0000 +++ b/libpurple/plugins.h Fri Dec 14 08:25:23 2018 +0000 @@ -833,7 +833,7 @@ * instances corresponding to the actions a plugin can perform. */ PurplePluginActionsCb -purple_plugin_info_get_actions_cb(const PurplePluginInfo *info); +purple_plugin_info_get_actions_cb(PurplePluginInfo *info); /** * purple_plugin_info_get_extra_cb: @@ -845,7 +845,7 @@ * Returns: The callback that returns extra information about a plugin. */ PurplePluginExtraCb -purple_plugin_info_get_extra_cb(const PurplePluginInfo *info); +purple_plugin_info_get_extra_cb(PurplePluginInfo *info); /** * purple_plugin_info_get_pref_frame_cb: @@ -857,7 +857,7 @@ * Returns: The callback that returns the preferences frame. */ PurplePluginPrefFrameCb -purple_plugin_info_get_pref_frame_cb(const PurplePluginInfo *info); +purple_plugin_info_get_pref_frame_cb(PurplePluginInfo *info); /** * purple_plugin_info_get_pref_request_cb: @@ -869,7 +869,7 @@ * Returns: The callback that returns the preferences request handle. */ PurplePluginPrefRequestCb -purple_plugin_info_get_pref_request_cb(const PurplePluginInfo *info); +purple_plugin_info_get_pref_request_cb(PurplePluginInfo *info); /** * purple_plugin_info_get_flags: @@ -880,7 +880,7 @@ * Returns: The flags of the plugin. */ PurplePluginInfoFlags -purple_plugin_info_get_flags(const PurplePluginInfo *info); +purple_plugin_info_get_flags(PurplePluginInfo *info); /** * purple_plugin_info_get_error: @@ -891,7 +891,7 @@ * * Returns: The plugin info error, or %NULL. */ -const gchar *purple_plugin_info_get_error(const PurplePluginInfo *info); +const gchar *purple_plugin_info_get_error(PurplePluginInfo *info); /** * purple_plugin_info_set_ui_data:
--- a/libpurple/whiteboard.c Fri Dec 14 08:06:02 2018 +0000 +++ b/libpurple/whiteboard.c Fri Dec 14 08:25:23 2018 +0000 @@ -26,9 +26,6 @@ #include "whiteboard.h" #include "protocol.h" -#define PURPLE_WHITEBOARD_GET_PRIVATE(obj) \ - (G_TYPE_INSTANCE_GET_PRIVATE((obj), PURPLE_TYPE_WHITEBOARD, PurpleWhiteboardPrivate)) - typedef struct _PurpleWhiteboardPrivate PurpleWhiteboardPrivate; /* Private data for a whiteboard */ @@ -62,9 +59,10 @@ /****************************************************************************** * Globals *****************************************************************************/ -static GObjectClass *parent_class; static GParamSpec *properties[PROP_LAST]; +G_DEFINE_TYPE_WITH_PRIVATE(PurpleWhiteboard, purple_whiteboard, G_TYPE_OBJECT); + static PurpleWhiteboardUiOps *whiteboard_ui_ops = NULL; /* static PurpleWhiteboardOps *whiteboard_protocol_ops = NULL; */ @@ -109,25 +107,28 @@ void purple_whiteboard_set_protocol_ops(PurpleWhiteboard *wb, PurpleWhiteboardOps *ops) { - PurpleWhiteboardPrivate *priv = PURPLE_WHITEBOARD_GET_PRIVATE(wb); + PurpleWhiteboardPrivate *priv = + purple_whiteboard_get_instance_private(wb); g_return_if_fail(priv != NULL); priv->protocol_ops = ops; } -PurpleAccount *purple_whiteboard_get_account(const PurpleWhiteboard *wb) +PurpleAccount *purple_whiteboard_get_account(PurpleWhiteboard *wb) { - PurpleWhiteboardPrivate *priv = PURPLE_WHITEBOARD_GET_PRIVATE(wb); + PurpleWhiteboardPrivate *priv = + purple_whiteboard_get_instance_private(wb); g_return_val_if_fail(priv != NULL, NULL); return priv->account; } -const char *purple_whiteboard_get_who(const PurpleWhiteboard *wb) +const char *purple_whiteboard_get_who(PurpleWhiteboard *wb) { - PurpleWhiteboardPrivate *priv = PURPLE_WHITEBOARD_GET_PRIVATE(wb); + PurpleWhiteboardPrivate *priv = + purple_whiteboard_get_instance_private(wb); g_return_val_if_fail(priv != NULL, NULL); @@ -136,7 +137,8 @@ void purple_whiteboard_set_state(PurpleWhiteboard *wb, int state) { - PurpleWhiteboardPrivate *priv = PURPLE_WHITEBOARD_GET_PRIVATE(wb); + PurpleWhiteboardPrivate *priv = + purple_whiteboard_get_instance_private(wb); g_return_if_fail(priv != NULL); @@ -145,9 +147,10 @@ g_object_notify_by_pspec(G_OBJECT(wb), properties[PROP_STATE]); } -int purple_whiteboard_get_state(const PurpleWhiteboard *wb) +int purple_whiteboard_get_state(PurpleWhiteboard *wb) { - PurpleWhiteboardPrivate *priv = PURPLE_WHITEBOARD_GET_PRIVATE(wb); + PurpleWhiteboardPrivate *priv = + purple_whiteboard_get_instance_private(wb); g_return_val_if_fail(priv != NULL, -1); @@ -177,7 +180,7 @@ while(l != NULL) { wb = l->data; - priv = PURPLE_WHITEBOARD_GET_PRIVATE(wb); + priv = purple_whiteboard_get_instance_private(wb); if(priv->account == account && purple_strequal(priv->who, who)) return wb; @@ -193,9 +196,10 @@ g_list_free(draw_list); } -gboolean purple_whiteboard_get_dimensions(const PurpleWhiteboard *wb, int *width, int *height) +gboolean purple_whiteboard_get_dimensions(PurpleWhiteboard *wb, int *width, int *height) { - PurpleWhiteboardPrivate *priv = PURPLE_WHITEBOARD_GET_PRIVATE(wb); + PurpleWhiteboardPrivate *priv = + purple_whiteboard_get_instance_private(wb); PurpleWhiteboardOps *protocol_ops; g_return_val_if_fail(priv != NULL, FALSE); @@ -219,7 +223,8 @@ void purple_whiteboard_send_draw_list(PurpleWhiteboard *wb, GList *list) { - PurpleWhiteboardPrivate *priv = PURPLE_WHITEBOARD_GET_PRIVATE(wb); + PurpleWhiteboardPrivate *priv = + purple_whiteboard_get_instance_private(wb); PurpleWhiteboardOps *protocol_ops; g_return_if_fail(priv != NULL); @@ -250,7 +255,8 @@ void purple_whiteboard_send_clear(PurpleWhiteboard *wb) { - PurpleWhiteboardPrivate *priv = PURPLE_WHITEBOARD_GET_PRIVATE(wb); + PurpleWhiteboardPrivate *priv = + purple_whiteboard_get_instance_private(wb); PurpleWhiteboardOps *protocol_ops; g_return_if_fail(priv != NULL); @@ -263,7 +269,8 @@ void purple_whiteboard_send_brush(PurpleWhiteboard *wb, int size, int color) { - PurpleWhiteboardPrivate *priv = PURPLE_WHITEBOARD_GET_PRIVATE(wb); + PurpleWhiteboardPrivate *priv = + purple_whiteboard_get_instance_private(wb); PurpleWhiteboardOps *protocol_ops; g_return_if_fail(priv != NULL); @@ -274,9 +281,10 @@ protocol_ops->set_brush(wb, size, color); } -gboolean purple_whiteboard_get_brush(const PurpleWhiteboard *wb, int *size, int *color) +gboolean purple_whiteboard_get_brush(PurpleWhiteboard *wb, int *size, int *color) { - PurpleWhiteboardPrivate *priv = PURPLE_WHITEBOARD_GET_PRIVATE(wb); + PurpleWhiteboardPrivate *priv = + purple_whiteboard_get_instance_private(wb); PurpleWhiteboardOps *protocol_ops; g_return_val_if_fail(priv != NULL, FALSE); @@ -297,9 +305,10 @@ whiteboard_ui_ops->set_brush(wb, size, color); } -GList *purple_whiteboard_get_draw_list(const PurpleWhiteboard *wb) +GList *purple_whiteboard_get_draw_list(PurpleWhiteboard *wb) { - PurpleWhiteboardPrivate *priv = PURPLE_WHITEBOARD_GET_PRIVATE(wb); + PurpleWhiteboardPrivate *priv = + purple_whiteboard_get_instance_private(wb); g_return_val_if_fail(priv != NULL, NULL); @@ -308,7 +317,8 @@ void purple_whiteboard_set_draw_list(PurpleWhiteboard *wb, GList* draw_list) { - PurpleWhiteboardPrivate *priv = PURPLE_WHITEBOARD_GET_PRIVATE(wb); + PurpleWhiteboardPrivate *priv = + purple_whiteboard_get_instance_private(wb); g_return_if_fail(priv != NULL); @@ -319,16 +329,18 @@ void purple_whiteboard_set_protocol_data(PurpleWhiteboard *wb, gpointer proto_data) { - PurpleWhiteboardPrivate *priv = PURPLE_WHITEBOARD_GET_PRIVATE(wb); + PurpleWhiteboardPrivate *priv = + purple_whiteboard_get_instance_private(wb); g_return_if_fail(priv != NULL); priv->proto_data = proto_data; } -gpointer purple_whiteboard_get_protocol_data(const PurpleWhiteboard *wb) +gpointer purple_whiteboard_get_protocol_data(PurpleWhiteboard *wb) { - PurpleWhiteboardPrivate *priv = PURPLE_WHITEBOARD_GET_PRIVATE(wb); + PurpleWhiteboardPrivate *priv = + purple_whiteboard_get_instance_private(wb); g_return_val_if_fail(priv != NULL, NULL); @@ -342,7 +354,7 @@ wb->ui_data = ui_data; } -gpointer purple_whiteboard_get_ui_data(const PurpleWhiteboard *wb) +gpointer purple_whiteboard_get_ui_data(PurpleWhiteboard *wb) { g_return_val_if_fail(PURPLE_IS_WHITEBOARD(wb), NULL); @@ -358,7 +370,8 @@ GParamSpec *pspec) { PurpleWhiteboard *wb = PURPLE_WHITEBOARD(obj); - PurpleWhiteboardPrivate *priv = PURPLE_WHITEBOARD_GET_PRIVATE(wb); + PurpleWhiteboardPrivate *priv = + purple_whiteboard_get_instance_private(wb); switch (param_id) { case PROP_STATE: @@ -405,15 +418,21 @@ } } +static void +purple_whiteboard_init(PurpleWhiteboard *wb) +{ +} + /* Called when done constructing */ static void purple_whiteboard_constructed(GObject *object) { PurpleWhiteboard *wb = PURPLE_WHITEBOARD(object); - PurpleWhiteboardPrivate *priv = PURPLE_WHITEBOARD_GET_PRIVATE(wb); + PurpleWhiteboardPrivate *priv = + purple_whiteboard_get_instance_private(wb); PurpleProtocol *protocol; - parent_class->constructed(object); + G_OBJECT_CLASS(purple_whiteboard_parent_class)->constructed(object); protocol = purple_connection_get_protocol( purple_account_get_connection(priv->account)); @@ -432,7 +451,8 @@ purple_whiteboard_finalize(GObject *object) { PurpleWhiteboard *wb = PURPLE_WHITEBOARD(object); - PurpleWhiteboardPrivate *priv = PURPLE_WHITEBOARD_GET_PRIVATE(wb); + PurpleWhiteboardPrivate *priv = + purple_whiteboard_get_instance_private(wb); if(wb->ui_data) { @@ -449,7 +469,7 @@ g_free(priv->who); - parent_class->finalize(object); + G_OBJECT_CLASS(purple_whiteboard_parent_class)->finalize(object); } /* Class initializer function */ @@ -458,8 +478,6 @@ { GObjectClass *obj_class = G_OBJECT_CLASS(klass); - parent_class = g_type_class_peek_parent(klass); - obj_class->finalize = purple_whiteboard_finalize; obj_class->constructed = purple_whiteboard_constructed; @@ -467,8 +485,6 @@ obj_class->get_property = purple_whiteboard_get_property; obj_class->set_property = purple_whiteboard_set_property; - g_type_class_add_private(klass, sizeof(PurpleWhiteboardPrivate)); - properties[PROP_STATE] = g_param_spec_int("state", "State", "State of the whiteboard.", G_MININT, G_MAXINT, 0, @@ -491,32 +507,6 @@ g_object_class_install_properties(obj_class, PROP_LAST, properties); } -GType -purple_whiteboard_get_type(void) -{ - static GType type = 0; - - if(type == 0) { - static const GTypeInfo info = { - sizeof(PurpleWhiteboardClass), - NULL, - NULL, - (GClassInitFunc)purple_whiteboard_class_init, - NULL, - NULL, - sizeof(PurpleWhiteboard), - 0, - NULL, - NULL, - }; - - type = g_type_register_static(G_TYPE_OBJECT, "PurpleWhiteboard", - &info, 0); - } - - return type; -} - PurpleWhiteboard *purple_whiteboard_new(PurpleAccount *account, const char *who, int state) { PurpleWhiteboard *wb;
--- a/libpurple/whiteboard.h Fri Dec 14 08:06:02 2018 +0000 +++ b/libpurple/whiteboard.h Fri Dec 14 08:25:23 2018 +0000 @@ -195,7 +195,7 @@ * * Returns: The whiteboard's account. */ -PurpleAccount *purple_whiteboard_get_account(const PurpleWhiteboard *wb); +PurpleAccount *purple_whiteboard_get_account(PurpleWhiteboard *wb); /** * purple_whiteboard_get_who: @@ -205,7 +205,7 @@ * * Returns: Who you're drawing with. */ -const char *purple_whiteboard_get_who(const PurpleWhiteboard *wb); +const char *purple_whiteboard_get_who(PurpleWhiteboard *wb); /** * purple_whiteboard_set_state: @@ -224,7 +224,7 @@ * * Returns: The state of the whiteboard. */ -int purple_whiteboard_get_state(const PurpleWhiteboard *wb); +int purple_whiteboard_get_state(PurpleWhiteboard *wb); /** * purple_whiteboard_start: @@ -263,7 +263,7 @@ * * Returns: TRUE if the values of width and height were set. */ -gboolean purple_whiteboard_get_dimensions(const PurpleWhiteboard *wb, int *width, int *height); +gboolean purple_whiteboard_get_dimensions(PurpleWhiteboard *wb, int *width, int *height); /** * purple_whiteboard_set_dimensions: @@ -346,7 +346,7 @@ * * Returns: TRUE if the size and color were set. */ -gboolean purple_whiteboard_get_brush(const PurpleWhiteboard *wb, int *size, int *color); +gboolean purple_whiteboard_get_brush(PurpleWhiteboard *wb, int *size, int *color); /** * purple_whiteboard_set_brush: @@ -366,7 +366,7 @@ * * Returns: The drawing list */ -GList *purple_whiteboard_get_draw_list(const PurpleWhiteboard *wb); +GList *purple_whiteboard_get_draw_list(PurpleWhiteboard *wb); /** * purple_whiteboard_set_draw_list: @@ -394,7 +394,7 @@ * * Returns: The protocol data for the whiteboard. */ -gpointer purple_whiteboard_get_protocol_data(const PurpleWhiteboard *wb); +gpointer purple_whiteboard_get_protocol_data(PurpleWhiteboard *wb); /** * purple_whiteboard_set_ui_data: @@ -415,7 +415,7 @@ * convenience field provided to the UIs--it is not * used by the libpurple core. */ -gpointer purple_whiteboard_get_ui_data(const PurpleWhiteboard *wb); +gpointer purple_whiteboard_get_ui_data(PurpleWhiteboard *wb); G_END_DECLS
--- a/libpurple/xfer.c Fri Dec 14 08:06:02 2018 +0000 +++ b/libpurple/xfer.c Fri Dec 14 08:25:23 2018 +0000 @@ -36,9 +36,6 @@ #define FT_INITIAL_BUFFER_SIZE 4096 #define FT_MAX_BUFFER_SIZE 65535 -#define PURPLE_XFER_GET_PRIVATE(obj) \ - (G_TYPE_INSTANCE_GET_PRIVATE((obj), PURPLE_TYPE_XFER, PurpleXferPrivate)) - typedef struct _PurpleXferPrivate PurpleXferPrivate; static PurpleXferUiOps *xfer_ui_ops = NULL; @@ -140,9 +137,10 @@ PROP_LAST }; -static GObjectClass *parent_class; static GParamSpec *properties[PROP_LAST]; +G_DEFINE_TYPE_WITH_PRIVATE(PurpleXfer, purple_xfer, G_TYPE_OBJECT); + static int purple_xfer_choose_file(PurpleXfer *xfer); static const gchar * @@ -172,7 +170,7 @@ void purple_xfer_set_status(PurpleXfer *xfer, PurpleXferStatus status) { - PurpleXferPrivate *priv = PURPLE_XFER_GET_PRIVATE(xfer); + PurpleXferPrivate *priv = purple_xfer_get_instance_private(xfer); g_return_if_fail(priv != NULL); @@ -236,7 +234,7 @@ char *escaped; gconstpointer thumbnail_data; gsize size; - PurpleXferPrivate *priv = PURPLE_XFER_GET_PRIVATE(xfer); + PurpleXferPrivate *priv = purple_xfer_get_instance_private(xfer); g_return_if_fail(priv != NULL); g_return_if_fail(message != NULL); @@ -298,7 +296,7 @@ gchar *msg = NULL, *utf8; PurpleXferType xfer_type = purple_xfer_get_xfer_type(xfer); PurpleAccount *account = purple_xfer_get_account(xfer); - PurpleXferPrivate *priv = PURPLE_XFER_GET_PRIVATE(xfer); + PurpleXferPrivate *priv = purple_xfer_get_instance_private(xfer); utf8 = g_filename_to_utf8(filename, -1, NULL, NULL, NULL); switch(xfer_type) { @@ -458,7 +456,7 @@ static void purple_xfer_ask_recv(PurpleXfer *xfer) { - PurpleXferPrivate *priv = PURPLE_XFER_GET_PRIVATE(xfer); + PurpleXferPrivate *priv = purple_xfer_get_instance_private(xfer); char *buf, *size_buf; goffset size; gconstpointer thumb; @@ -525,7 +523,7 @@ static void purple_xfer_ask_accept(PurpleXfer *xfer) { - PurpleXferPrivate *priv = PURPLE_XFER_GET_PRIVATE(xfer); + PurpleXferPrivate *priv = purple_xfer_get_instance_private(xfer); char *buf, *buf2 = NULL; PurpleBuddy *buddy = purple_blist_find_buddy(priv->account, priv->who); @@ -548,7 +546,7 @@ void purple_xfer_request(PurpleXfer *xfer) { - PurpleXferPrivate *priv = PURPLE_XFER_GET_PRIVATE(xfer); + PurpleXferPrivate *priv = purple_xfer_get_instance_private(xfer); g_return_if_fail(priv != NULL); g_return_if_fail(priv->ops.init != NULL); @@ -592,7 +590,7 @@ void purple_xfer_request_accepted(PurpleXfer *xfer, const char *filename) { - PurpleXferPrivate *priv = PURPLE_XFER_GET_PRIVATE(xfer); + PurpleXferPrivate *priv = purple_xfer_get_instance_private(xfer); PurpleXferType type; GStatBuf st; char *msg, *utf8, *base; @@ -683,7 +681,7 @@ void purple_xfer_request_denied(PurpleXfer *xfer) { - PurpleXferPrivate *priv = PURPLE_XFER_GET_PRIVATE(xfer); + PurpleXferPrivate *priv = purple_xfer_get_instance_private(xfer); g_return_if_fail(priv != NULL); @@ -697,7 +695,7 @@ int purple_xfer_get_fd(PurpleXfer *xfer) { - PurpleXferPrivate *priv = PURPLE_XFER_GET_PRIVATE(xfer); + PurpleXferPrivate *priv = purple_xfer_get_instance_private(xfer); g_return_val_if_fail(priv != NULL, 0); @@ -706,7 +704,7 @@ int purple_xfer_get_watcher(PurpleXfer *xfer) { - PurpleXferPrivate *priv = PURPLE_XFER_GET_PRIVATE(xfer); + PurpleXferPrivate *priv = purple_xfer_get_instance_private(xfer); g_return_val_if_fail(priv != NULL, 0); @@ -714,9 +712,9 @@ } PurpleXferType -purple_xfer_get_xfer_type(const PurpleXfer *xfer) +purple_xfer_get_xfer_type(PurpleXfer *xfer) { - PurpleXferPrivate *priv = PURPLE_XFER_GET_PRIVATE(xfer); + PurpleXferPrivate *priv = purple_xfer_get_instance_private(xfer); g_return_val_if_fail(priv != NULL, PURPLE_XFER_TYPE_UNKNOWN); @@ -724,9 +722,9 @@ } PurpleAccount * -purple_xfer_get_account(const PurpleXfer *xfer) +purple_xfer_get_account(PurpleXfer *xfer) { - PurpleXferPrivate *priv = PURPLE_XFER_GET_PRIVATE(xfer); + PurpleXferPrivate *priv = purple_xfer_get_instance_private(xfer); g_return_val_if_fail(priv != NULL, NULL); @@ -736,7 +734,7 @@ void purple_xfer_set_remote_user(PurpleXfer *xfer, const char *who) { - PurpleXferPrivate *priv = PURPLE_XFER_GET_PRIVATE(xfer); + PurpleXferPrivate *priv = purple_xfer_get_instance_private(xfer); g_return_if_fail(priv != NULL); @@ -747,9 +745,9 @@ } const char * -purple_xfer_get_remote_user(const PurpleXfer *xfer) +purple_xfer_get_remote_user(PurpleXfer *xfer) { - PurpleXferPrivate *priv = PURPLE_XFER_GET_PRIVATE(xfer); + PurpleXferPrivate *priv = purple_xfer_get_instance_private(xfer); g_return_val_if_fail(priv != NULL, NULL); @@ -757,9 +755,9 @@ } PurpleXferStatus -purple_xfer_get_status(const PurpleXfer *xfer) +purple_xfer_get_status(PurpleXfer *xfer) { - PurpleXferPrivate *priv = PURPLE_XFER_GET_PRIVATE(xfer); + PurpleXferPrivate *priv = purple_xfer_get_instance_private(xfer); g_return_val_if_fail(priv != NULL, PURPLE_XFER_STATUS_UNKNOWN); @@ -767,7 +765,7 @@ } gboolean -purple_xfer_is_cancelled(const PurpleXfer *xfer) +purple_xfer_is_cancelled(PurpleXfer *xfer) { g_return_val_if_fail(PURPLE_IS_XFER(xfer), TRUE); @@ -779,7 +777,7 @@ } gboolean -purple_xfer_is_completed(const PurpleXfer *xfer) +purple_xfer_is_completed(PurpleXfer *xfer) { g_return_val_if_fail(PURPLE_IS_XFER(xfer), TRUE); @@ -787,9 +785,9 @@ } const char * -purple_xfer_get_filename(const PurpleXfer *xfer) +purple_xfer_get_filename(PurpleXfer *xfer) { - PurpleXferPrivate *priv = PURPLE_XFER_GET_PRIVATE(xfer); + PurpleXferPrivate *priv = purple_xfer_get_instance_private(xfer); g_return_val_if_fail(priv != NULL, NULL); @@ -797,9 +795,9 @@ } const char * -purple_xfer_get_local_filename(const PurpleXfer *xfer) +purple_xfer_get_local_filename(PurpleXfer *xfer) { - PurpleXferPrivate *priv = PURPLE_XFER_GET_PRIVATE(xfer); + PurpleXferPrivate *priv = purple_xfer_get_instance_private(xfer); g_return_val_if_fail(priv != NULL, NULL); @@ -807,9 +805,9 @@ } goffset -purple_xfer_get_bytes_sent(const PurpleXfer *xfer) +purple_xfer_get_bytes_sent(PurpleXfer *xfer) { - PurpleXferPrivate *priv = PURPLE_XFER_GET_PRIVATE(xfer); + PurpleXferPrivate *priv = purple_xfer_get_instance_private(xfer); g_return_val_if_fail(priv != NULL, 0); @@ -817,9 +815,9 @@ } goffset -purple_xfer_get_bytes_remaining(const PurpleXfer *xfer) +purple_xfer_get_bytes_remaining(PurpleXfer *xfer) { - PurpleXferPrivate *priv = PURPLE_XFER_GET_PRIVATE(xfer); + PurpleXferPrivate *priv = purple_xfer_get_instance_private(xfer); g_return_val_if_fail(priv != NULL, 0); @@ -827,9 +825,9 @@ } goffset -purple_xfer_get_size(const PurpleXfer *xfer) +purple_xfer_get_size(PurpleXfer *xfer) { - PurpleXferPrivate *priv = PURPLE_XFER_GET_PRIVATE(xfer); + PurpleXferPrivate *priv = purple_xfer_get_instance_private(xfer); g_return_val_if_fail(priv != NULL, 0); @@ -837,7 +835,7 @@ } double -purple_xfer_get_progress(const PurpleXfer *xfer) +purple_xfer_get_progress(PurpleXfer *xfer) { g_return_val_if_fail(PURPLE_IS_XFER(xfer), 0.0); @@ -849,9 +847,9 @@ } guint16 -purple_xfer_get_local_port(const PurpleXfer *xfer) +purple_xfer_get_local_port(PurpleXfer *xfer) { - PurpleXferPrivate *priv = PURPLE_XFER_GET_PRIVATE(xfer); + PurpleXferPrivate *priv = purple_xfer_get_instance_private(xfer); g_return_val_if_fail(priv != NULL, -1); @@ -859,9 +857,9 @@ } const char * -purple_xfer_get_remote_ip(const PurpleXfer *xfer) +purple_xfer_get_remote_ip(PurpleXfer *xfer) { - PurpleXferPrivate *priv = PURPLE_XFER_GET_PRIVATE(xfer); + PurpleXferPrivate *priv = purple_xfer_get_instance_private(xfer); g_return_val_if_fail(priv != NULL, NULL); @@ -869,9 +867,9 @@ } guint16 -purple_xfer_get_remote_port(const PurpleXfer *xfer) +purple_xfer_get_remote_port(PurpleXfer *xfer) { - PurpleXferPrivate *priv = PURPLE_XFER_GET_PRIVATE(xfer); + PurpleXferPrivate *priv = purple_xfer_get_instance_private(xfer); g_return_val_if_fail(priv != NULL, -1); @@ -879,9 +877,9 @@ } time_t -purple_xfer_get_start_time(const PurpleXfer *xfer) +purple_xfer_get_start_time(PurpleXfer *xfer) { - PurpleXferPrivate *priv = PURPLE_XFER_GET_PRIVATE(xfer); + PurpleXferPrivate *priv = purple_xfer_get_instance_private(xfer); g_return_val_if_fail(priv != NULL, 0); @@ -889,9 +887,9 @@ } time_t -purple_xfer_get_end_time(const PurpleXfer *xfer) +purple_xfer_get_end_time(PurpleXfer *xfer) { - PurpleXferPrivate *priv = PURPLE_XFER_GET_PRIVATE(xfer); + PurpleXferPrivate *priv = purple_xfer_get_instance_private(xfer); g_return_val_if_fail(priv != NULL, 0); @@ -900,7 +898,7 @@ void purple_xfer_set_fd(PurpleXfer *xfer, int fd) { - PurpleXferPrivate *priv = PURPLE_XFER_GET_PRIVATE(xfer); + PurpleXferPrivate *priv = purple_xfer_get_instance_private(xfer); g_return_if_fail(priv != NULL); @@ -911,7 +909,7 @@ void purple_xfer_set_watcher(PurpleXfer *xfer, int watcher) { - PurpleXferPrivate *priv = PURPLE_XFER_GET_PRIVATE(xfer); + PurpleXferPrivate *priv = purple_xfer_get_instance_private(xfer); g_return_if_fail(priv != NULL); @@ -923,7 +921,7 @@ void purple_xfer_set_completed(PurpleXfer *xfer, gboolean completed) { - PurpleXferPrivate *priv = PURPLE_XFER_GET_PRIVATE(xfer); + PurpleXferPrivate *priv = purple_xfer_get_instance_private(xfer); PurpleXferUiOps *ui_ops; g_return_if_fail(priv != NULL); @@ -972,7 +970,7 @@ void purple_xfer_set_message(PurpleXfer *xfer, const char *message) { - PurpleXferPrivate *priv = PURPLE_XFER_GET_PRIVATE(xfer); + PurpleXferPrivate *priv = purple_xfer_get_instance_private(xfer); g_return_if_fail(priv != NULL); @@ -985,9 +983,9 @@ } const char * -purple_xfer_get_message(const PurpleXfer *xfer) +purple_xfer_get_message(PurpleXfer *xfer) { - PurpleXferPrivate *priv = PURPLE_XFER_GET_PRIVATE(xfer); + PurpleXferPrivate *priv = purple_xfer_get_instance_private(xfer); g_return_val_if_fail(priv != NULL, NULL); @@ -997,7 +995,7 @@ void purple_xfer_set_filename(PurpleXfer *xfer, const char *filename) { - PurpleXferPrivate *priv = PURPLE_XFER_GET_PRIVATE(xfer); + PurpleXferPrivate *priv = purple_xfer_get_instance_private(xfer); g_return_if_fail(priv != NULL); @@ -1012,7 +1010,7 @@ void purple_xfer_set_local_filename(PurpleXfer *xfer, const char *filename) { - PurpleXferPrivate *priv = PURPLE_XFER_GET_PRIVATE(xfer); + PurpleXferPrivate *priv = purple_xfer_get_instance_private(xfer); g_return_if_fail(priv != NULL); @@ -1027,7 +1025,7 @@ void purple_xfer_set_size(PurpleXfer *xfer, goffset size) { - PurpleXferPrivate *priv = PURPLE_XFER_GET_PRIVATE(xfer); + PurpleXferPrivate *priv = purple_xfer_get_instance_private(xfer); g_return_if_fail(priv != NULL); @@ -1039,7 +1037,7 @@ void purple_xfer_set_local_port(PurpleXfer *xfer, guint16 local_port) { - PurpleXferPrivate *priv = PURPLE_XFER_GET_PRIVATE(xfer); + PurpleXferPrivate *priv = purple_xfer_get_instance_private(xfer); g_return_if_fail(priv != NULL); @@ -1051,7 +1049,7 @@ void purple_xfer_set_bytes_sent(PurpleXfer *xfer, goffset bytes_sent) { - PurpleXferPrivate *priv = PURPLE_XFER_GET_PRIVATE(xfer); + PurpleXferPrivate *priv = purple_xfer_get_instance_private(xfer); g_return_if_fail(priv != NULL); @@ -1061,9 +1059,9 @@ } PurpleXferUiOps * -purple_xfer_get_ui_ops(const PurpleXfer *xfer) +purple_xfer_get_ui_ops(PurpleXfer *xfer) { - PurpleXferPrivate *priv = PURPLE_XFER_GET_PRIVATE(xfer); + PurpleXferPrivate *priv = purple_xfer_get_instance_private(xfer); g_return_val_if_fail(priv != NULL, NULL); @@ -1073,7 +1071,7 @@ void purple_xfer_set_init_fnc(PurpleXfer *xfer, void (*fnc)(PurpleXfer *)) { - PurpleXferPrivate *priv = PURPLE_XFER_GET_PRIVATE(xfer); + PurpleXferPrivate *priv = purple_xfer_get_instance_private(xfer); g_return_if_fail(priv != NULL); @@ -1082,7 +1080,7 @@ void purple_xfer_set_request_denied_fnc(PurpleXfer *xfer, void (*fnc)(PurpleXfer *)) { - PurpleXferPrivate *priv = PURPLE_XFER_GET_PRIVATE(xfer); + PurpleXferPrivate *priv = purple_xfer_get_instance_private(xfer); g_return_if_fail(priv != NULL); @@ -1092,7 +1090,7 @@ void purple_xfer_set_read_fnc(PurpleXfer *xfer, gssize (*fnc)(guchar **, size_t, PurpleXfer *)) { - PurpleXferPrivate *priv = PURPLE_XFER_GET_PRIVATE(xfer); + PurpleXferPrivate *priv = purple_xfer_get_instance_private(xfer); g_return_if_fail(priv != NULL); @@ -1103,7 +1101,7 @@ purple_xfer_set_write_fnc(PurpleXfer *xfer, gssize (*fnc)(const guchar *, size_t, PurpleXfer *)) { - PurpleXferPrivate *priv = PURPLE_XFER_GET_PRIVATE(xfer); + PurpleXferPrivate *priv = purple_xfer_get_instance_private(xfer); g_return_if_fail(priv != NULL); @@ -1114,7 +1112,7 @@ purple_xfer_set_ack_fnc(PurpleXfer *xfer, void (*fnc)(PurpleXfer *, const guchar *, size_t)) { - PurpleXferPrivate *priv = PURPLE_XFER_GET_PRIVATE(xfer); + PurpleXferPrivate *priv = purple_xfer_get_instance_private(xfer); g_return_if_fail(priv != NULL); @@ -1124,7 +1122,7 @@ void purple_xfer_set_start_fnc(PurpleXfer *xfer, void (*fnc)(PurpleXfer *)) { - PurpleXferPrivate *priv = PURPLE_XFER_GET_PRIVATE(xfer); + PurpleXferPrivate *priv = purple_xfer_get_instance_private(xfer); g_return_if_fail(priv != NULL); @@ -1134,7 +1132,7 @@ void purple_xfer_set_end_fnc(PurpleXfer *xfer, void (*fnc)(PurpleXfer *)) { - PurpleXferPrivate *priv = PURPLE_XFER_GET_PRIVATE(xfer); + PurpleXferPrivate *priv = purple_xfer_get_instance_private(xfer); g_return_if_fail(priv != NULL); @@ -1144,7 +1142,7 @@ void purple_xfer_set_cancel_send_fnc(PurpleXfer *xfer, void (*fnc)(PurpleXfer *)) { - PurpleXferPrivate *priv = PURPLE_XFER_GET_PRIVATE(xfer); + PurpleXferPrivate *priv = purple_xfer_get_instance_private(xfer); g_return_if_fail(priv != NULL); @@ -1154,7 +1152,7 @@ void purple_xfer_set_cancel_recv_fnc(PurpleXfer *xfer, void (*fnc)(PurpleXfer *)) { - PurpleXferPrivate *priv = PURPLE_XFER_GET_PRIVATE(xfer); + PurpleXferPrivate *priv = purple_xfer_get_instance_private(xfer); g_return_if_fail(priv != NULL); @@ -1164,7 +1162,7 @@ static void purple_xfer_increase_buffer_size(PurpleXfer *xfer) { - PurpleXferPrivate *priv = PURPLE_XFER_GET_PRIVATE(xfer); + PurpleXferPrivate *priv = purple_xfer_get_instance_private(xfer); priv->current_buffer_size = MIN(priv->current_buffer_size * 1.5, FT_MAX_BUFFER_SIZE); @@ -1173,7 +1171,7 @@ gssize purple_xfer_read(PurpleXfer *xfer, guchar **buffer) { - PurpleXferPrivate *priv = PURPLE_XFER_GET_PRIVATE(xfer); + PurpleXferPrivate *priv = purple_xfer_get_instance_private(xfer); gssize s, r; g_return_val_if_fail(priv != NULL, 0); @@ -1213,7 +1211,7 @@ static gssize do_write(PurpleXfer *xfer, const guchar *buffer, gsize size) { - PurpleXferPrivate *priv = PURPLE_XFER_GET_PRIVATE(xfer); + PurpleXferPrivate *priv = purple_xfer_get_instance_private(xfer); gssize r; g_return_val_if_fail(priv != NULL, 0); @@ -1234,7 +1232,7 @@ gssize purple_xfer_write(PurpleXfer *xfer, const guchar *buffer, gsize size) { - PurpleXferPrivate *priv = PURPLE_XFER_GET_PRIVATE(xfer); + PurpleXferPrivate *priv = purple_xfer_get_instance_private(xfer); gssize s; g_return_val_if_fail(priv != NULL, 0); @@ -1247,7 +1245,7 @@ gboolean purple_xfer_write_file(PurpleXfer *xfer, const guchar *buffer, gsize size) { - PurpleXferPrivate *priv = PURPLE_XFER_GET_PRIVATE(xfer); + PurpleXferPrivate *priv = purple_xfer_get_instance_private(xfer); PurpleXferUiOps *ui_ops; gsize wc; gboolean fs_known; @@ -1293,7 +1291,7 @@ gssize purple_xfer_read_file(PurpleXfer *xfer, guchar *buffer, gsize size) { - PurpleXferPrivate *priv = PURPLE_XFER_GET_PRIVATE(xfer); + PurpleXferPrivate *priv = purple_xfer_get_instance_private(xfer); PurpleXferUiOps *ui_ops; gssize got_len; @@ -1347,7 +1345,7 @@ static void do_transfer(PurpleXfer *xfer) { - PurpleXferPrivate *priv = PURPLE_XFER_GET_PRIVATE(xfer); + PurpleXferPrivate *priv = purple_xfer_get_instance_private(xfer); PurpleXferUiOps *ui_ops; guchar *buffer = NULL; gssize r = 0; @@ -1481,7 +1479,7 @@ transfer_cb(gpointer data, gint source, PurpleInputCondition condition) { PurpleXfer *xfer = data; - PurpleXferPrivate *priv = PURPLE_XFER_GET_PRIVATE(xfer); + PurpleXferPrivate *priv = purple_xfer_get_instance_private(xfer); if (priv->dest_fp == NULL) { /* The UI is moderating its side manually */ @@ -1504,7 +1502,7 @@ static void begin_transfer(PurpleXfer *xfer, PurpleInputCondition cond) { - PurpleXferPrivate *priv = PURPLE_XFER_GET_PRIVATE(xfer); + PurpleXferPrivate *priv = purple_xfer_get_instance_private(xfer); PurpleXferType type = purple_xfer_get_xfer_type(xfer); PurpleXferUiOps *ui_ops = purple_xfer_get_ui_ops(xfer); @@ -1560,7 +1558,7 @@ void purple_xfer_ui_ready(PurpleXfer *xfer) { - PurpleXferPrivate *priv = PURPLE_XFER_GET_PRIVATE(xfer); + PurpleXferPrivate *priv = purple_xfer_get_instance_private(xfer); PurpleInputCondition cond; PurpleXferType type; @@ -1593,7 +1591,7 @@ void purple_xfer_protocol_ready(PurpleXfer *xfer) { - PurpleXferPrivate *priv = PURPLE_XFER_GET_PRIVATE(xfer); + PurpleXferPrivate *priv = purple_xfer_get_instance_private(xfer); g_return_if_fail(priv != NULL); @@ -1615,7 +1613,7 @@ void purple_xfer_start(PurpleXfer *xfer, int fd, const char *ip, guint16 port) { - PurpleXferPrivate *priv = PURPLE_XFER_GET_PRIVATE(xfer); + PurpleXferPrivate *priv = purple_xfer_get_instance_private(xfer); PurpleInputCondition cond; PurpleXferType type; GObject *obj; @@ -1662,7 +1660,7 @@ void purple_xfer_end(PurpleXfer *xfer) { - PurpleXferPrivate *priv = PURPLE_XFER_GET_PRIVATE(xfer); + PurpleXferPrivate *priv = purple_xfer_get_instance_private(xfer); g_return_if_fail(priv != NULL); @@ -1718,7 +1716,7 @@ void purple_xfer_cancel_local(PurpleXfer *xfer) { - PurpleXferPrivate *priv = PURPLE_XFER_GET_PRIVATE(xfer); + PurpleXferPrivate *priv = purple_xfer_get_instance_private(xfer); PurpleXferUiOps *ui_ops; char *msg = NULL; @@ -1790,7 +1788,7 @@ void purple_xfer_cancel_remote(PurpleXfer *xfer) { - PurpleXferPrivate *priv = PURPLE_XFER_GET_PRIVATE(xfer); + PurpleXferPrivate *priv = purple_xfer_get_instance_private(xfer); PurpleXferUiOps *ui_ops; gchar *msg; PurpleAccount *account; @@ -1892,9 +1890,9 @@ } gconstpointer -purple_xfer_get_thumbnail(const PurpleXfer *xfer, gsize *len) +purple_xfer_get_thumbnail(PurpleXfer *xfer, gsize *len) { - PurpleXferPrivate *priv = PURPLE_XFER_GET_PRIVATE(xfer); + PurpleXferPrivate *priv = purple_xfer_get_instance_private(xfer); g_return_val_if_fail(priv != NULL, NULL); @@ -1905,9 +1903,9 @@ } const gchar * -purple_xfer_get_thumbnail_mimetype(const PurpleXfer *xfer) +purple_xfer_get_thumbnail_mimetype(PurpleXfer *xfer) { - PurpleXferPrivate *priv = PURPLE_XFER_GET_PRIVATE(xfer); + PurpleXferPrivate *priv = purple_xfer_get_instance_private(xfer); g_return_val_if_fail(priv != NULL, NULL); @@ -1918,7 +1916,7 @@ purple_xfer_set_thumbnail(PurpleXfer *xfer, gconstpointer thumbnail, gsize size, const gchar *mimetype) { - PurpleXferPrivate *priv = PURPLE_XFER_GET_PRIVATE(xfer); + PurpleXferPrivate *priv = purple_xfer_get_instance_private(xfer); gpointer old_thumbnail_data; gchar *old_mimetype; @@ -1946,7 +1944,7 @@ void purple_xfer_prepare_thumbnail(PurpleXfer *xfer, const gchar *formats) { - PurpleXferPrivate *priv = PURPLE_XFER_GET_PRIVATE(xfer); + PurpleXferPrivate *priv = purple_xfer_get_instance_private(xfer); g_return_if_fail(priv != NULL); @@ -1958,7 +1956,7 @@ void purple_xfer_set_protocol_data(PurpleXfer *xfer, gpointer proto_data) { - PurpleXferPrivate *priv = PURPLE_XFER_GET_PRIVATE(xfer); + PurpleXferPrivate *priv = purple_xfer_get_instance_private(xfer); g_return_if_fail(priv != NULL); @@ -1966,9 +1964,9 @@ } gpointer -purple_xfer_get_protocol_data(const PurpleXfer *xfer) +purple_xfer_get_protocol_data(PurpleXfer *xfer) { - PurpleXferPrivate *priv = PURPLE_XFER_GET_PRIVATE(xfer); + PurpleXferPrivate *priv = purple_xfer_get_instance_private(xfer); g_return_val_if_fail(priv != NULL, NULL); @@ -1982,7 +1980,7 @@ xfer->ui_data = ui_data; } -gpointer purple_xfer_get_ui_data(const PurpleXfer *xfer) +gpointer purple_xfer_get_ui_data(PurpleXfer *xfer) { g_return_val_if_fail(PURPLE_IS_XFER(xfer), NULL); @@ -1998,7 +1996,7 @@ GParamSpec *pspec) { PurpleXfer *xfer = PURPLE_XFER(obj); - PurpleXferPrivate *priv = PURPLE_XFER_GET_PRIVATE(xfer); + PurpleXferPrivate *priv = purple_xfer_get_instance_private(xfer); switch (param_id) { case PROP_TYPE: @@ -2119,10 +2117,9 @@ /* GObject initialization function */ static void -purple_xfer_init(GTypeInstance *instance, gpointer klass) +purple_xfer_init(PurpleXfer *xfer) { - PurpleXfer *xfer = PURPLE_XFER(instance); - PurpleXferPrivate *priv = PURPLE_XFER_GET_PRIVATE(xfer); + PurpleXferPrivate *priv = purple_xfer_get_instance_private(xfer); priv->ui_ops = purple_xfers_get_ui_ops(); priv->current_buffer_size = FT_INITIAL_BUFFER_SIZE; @@ -2135,10 +2132,10 @@ purple_xfer_constructed(GObject *object) { PurpleXfer *xfer = PURPLE_XFER(object); - PurpleXferPrivate *priv = PURPLE_XFER_GET_PRIVATE(xfer); + PurpleXferPrivate *priv = purple_xfer_get_instance_private(xfer); PurpleXferUiOps *ui_ops; - parent_class->constructed(object); + G_OBJECT_CLASS(purple_xfer_parent_class)->constructed(object); ui_ops = purple_xfers_get_ui_ops(); @@ -2160,7 +2157,7 @@ purple_xfer_finalize(GObject *object) { PurpleXfer *xfer = PURPLE_XFER(object); - PurpleXferPrivate *priv = PURPLE_XFER_GET_PRIVATE(xfer); + PurpleXferPrivate *priv = purple_xfer_get_instance_private(xfer); PurpleXferUiOps *ui_ops; /* Close the file browser, if it's open */ @@ -2187,7 +2184,7 @@ g_free(priv->thumbnail_data); g_free(priv->thumbnail_mimetype); - parent_class->finalize(object); + G_OBJECT_CLASS(purple_xfer_parent_class)->finalize(object); } /* Class initializer function */ @@ -2196,8 +2193,6 @@ { GObjectClass *obj_class = G_OBJECT_CLASS(klass); - parent_class = g_type_class_peek_parent(klass); - obj_class->finalize = purple_xfer_finalize; obj_class->constructed = purple_xfer_constructed; @@ -2205,8 +2200,6 @@ obj_class->get_property = purple_xfer_get_property; obj_class->set_property = purple_xfer_set_property; - g_type_class_add_private(klass, sizeof(PurpleXferPrivate)); - properties[PROP_TYPE] = g_param_spec_enum("type", "Transfer type", "The type of file transfer.", PURPLE_TYPE_XFER_TYPE, PURPLE_XFER_TYPE_UNKNOWN, @@ -2318,32 +2311,6 @@ g_object_class_install_properties(obj_class, PROP_LAST, properties); } -GType -purple_xfer_get_type(void) -{ - static GType type = 0; - - if(type == 0) { - static const GTypeInfo info = { - sizeof(PurpleXferClass), - NULL, - NULL, - (GClassInitFunc)purple_xfer_class_init, - NULL, - NULL, - sizeof(PurpleXfer), - 0, - (GInstanceInitFunc)purple_xfer_init, - NULL, - }; - - type = g_type_register_static(G_TYPE_OBJECT, "PurpleXfer", - &info, 0); - } - - return type; -} - PurpleXfer * purple_xfer_new(PurpleAccount *account, PurpleXferType type, const char *who) {
--- a/libpurple/xfer.h Fri Dec 14 08:06:02 2018 +0000 +++ b/libpurple/xfer.h Fri Dec 14 08:25:23 2018 +0000 @@ -295,7 +295,7 @@ * * Returns: The type of the file transfer. */ -PurpleXferType purple_xfer_get_xfer_type(const PurpleXfer *xfer); +PurpleXferType purple_xfer_get_xfer_type(PurpleXfer *xfer); /** * purple_xfer_get_account: @@ -305,7 +305,7 @@ * * Returns: The account. */ -PurpleAccount *purple_xfer_get_account(const PurpleXfer *xfer); +PurpleAccount *purple_xfer_get_account(PurpleXfer *xfer); /** * purple_xfer_set_remote_user: @@ -324,7 +324,7 @@ * * Returns: The name of the remote user. */ -const char *purple_xfer_get_remote_user(const PurpleXfer *xfer); +const char *purple_xfer_get_remote_user(PurpleXfer *xfer); /** * purple_xfer_get_status: @@ -334,7 +334,7 @@ * * Returns: The status. */ -PurpleXferStatus purple_xfer_get_status(const PurpleXfer *xfer); +PurpleXferStatus purple_xfer_get_status(PurpleXfer *xfer); /** * purple_xfer_is_cancelled: @@ -344,7 +344,7 @@ * * Returns: Whether or not the transfer was cancelled. */ -gboolean purple_xfer_is_cancelled(const PurpleXfer *xfer); +gboolean purple_xfer_is_cancelled(PurpleXfer *xfer); /** * purple_xfer_is_completed: @@ -354,7 +354,7 @@ * * Returns: The completed state. */ -gboolean purple_xfer_is_completed(const PurpleXfer *xfer); +gboolean purple_xfer_is_completed(PurpleXfer *xfer); /** * purple_xfer_get_filename: @@ -364,7 +364,7 @@ * * Returns: The filename. */ -const char *purple_xfer_get_filename(const PurpleXfer *xfer); +const char *purple_xfer_get_filename(PurpleXfer *xfer); /** * purple_xfer_get_local_filename: @@ -374,7 +374,7 @@ * * Returns: The destination filename. */ -const char *purple_xfer_get_local_filename(const PurpleXfer *xfer); +const char *purple_xfer_get_local_filename(PurpleXfer *xfer); /** * purple_xfer_get_bytes_sent: @@ -384,7 +384,7 @@ * * Returns: The number of bytes sent. */ -goffset purple_xfer_get_bytes_sent(const PurpleXfer *xfer); +goffset purple_xfer_get_bytes_sent(PurpleXfer *xfer); /** * purple_xfer_get_bytes_remaining: @@ -394,7 +394,7 @@ * * Returns: The number of bytes remaining. */ -goffset purple_xfer_get_bytes_remaining(const PurpleXfer *xfer); +goffset purple_xfer_get_bytes_remaining(PurpleXfer *xfer); /** * purple_xfer_get_size: @@ -404,7 +404,7 @@ * * Returns: The total size of the file. */ -goffset purple_xfer_get_size(const PurpleXfer *xfer); +goffset purple_xfer_get_size(PurpleXfer *xfer); /** * purple_xfer_get_progress: @@ -416,7 +416,7 @@ * * Returns: The percentage complete. */ -double purple_xfer_get_progress(const PurpleXfer *xfer); +double purple_xfer_get_progress(PurpleXfer *xfer); /** * purple_xfer_get_local_port: @@ -426,7 +426,7 @@ * * Returns: The port number on this end. */ -guint16 purple_xfer_get_local_port(const PurpleXfer *xfer); +guint16 purple_xfer_get_local_port(PurpleXfer *xfer); /** * purple_xfer_get_remote_ip: @@ -436,7 +436,7 @@ * * Returns: The IP address on the other end. */ -const char *purple_xfer_get_remote_ip(const PurpleXfer *xfer); +const char *purple_xfer_get_remote_ip(PurpleXfer *xfer); /** * purple_xfer_get_remote_port: @@ -446,7 +446,7 @@ * * Returns: The port number on the other end. */ -guint16 purple_xfer_get_remote_port(const PurpleXfer *xfer); +guint16 purple_xfer_get_remote_port(PurpleXfer *xfer); /** * purple_xfer_get_start_time: @@ -456,7 +456,7 @@ * * Returns: The time when the transfer started. */ -time_t purple_xfer_get_start_time(const PurpleXfer *xfer); +time_t purple_xfer_get_start_time(PurpleXfer *xfer); /** * purple_xfer_get_end_time: @@ -466,7 +466,7 @@ * * Returns: The time when the transfer ended. */ -time_t purple_xfer_get_end_time(const PurpleXfer *xfer); +time_t purple_xfer_get_end_time(PurpleXfer *xfer); /** * purple_xfer_set_fd: @@ -521,7 +521,7 @@ * * Returns: The message. */ -const char *purple_xfer_get_message(const PurpleXfer *xfer); +const char *purple_xfer_get_message(PurpleXfer *xfer); /** * purple_xfer_set_filename: @@ -583,7 +583,7 @@ * * Returns: The UI operations structure. */ -PurpleXferUiOps *purple_xfer_get_ui_ops(const PurpleXfer *xfer); +PurpleXferUiOps *purple_xfer_get_ui_ops(PurpleXfer *xfer); /** * purple_xfer_set_read_fnc: @@ -839,7 +839,7 @@ * * Returns: The thumbnail data, or NULL if there is no thumbnail */ -gconstpointer purple_xfer_get_thumbnail(const PurpleXfer *xfer, gsize *len); +gconstpointer purple_xfer_get_thumbnail(PurpleXfer *xfer, gsize *len); /** * purple_xfer_get_thumbnail_mimetype: @@ -849,7 +849,7 @@ * * Returns: The mimetype of the thumbnail, or %NULL if not thumbnail is set */ -const gchar *purple_xfer_get_thumbnail_mimetype(const PurpleXfer *xfer); +const gchar *purple_xfer_get_thumbnail_mimetype(PurpleXfer *xfer); /** @@ -892,7 +892,7 @@ * * Returns: The protocol data for the file transfer. */ -gpointer purple_xfer_get_protocol_data(const PurpleXfer *xfer); +gpointer purple_xfer_get_protocol_data(PurpleXfer *xfer); /** * purple_xfer_set_ui_data: @@ -913,7 +913,7 @@ * convenience field provided to the UIs--it is not * used by the libpurple core. */ -gpointer purple_xfer_get_ui_data(const PurpleXfer *xfer); +gpointer purple_xfer_get_ui_data(PurpleXfer *xfer); /**************************************************************************/ /* File Transfer Subsystem API */