libpurple/message.c

changeset 39434
2dea6f348ebb
parent 39352
62bca2fe2e91
child 39436
026ac0b3708f
--- a/libpurple/message.c	Thu Feb 07 04:15:34 2019 -0500
+++ b/libpurple/message.c	Thu Feb 07 04:25:11 2019 -0500
@@ -26,9 +26,6 @@
 #include "enums.h"
 #include "message.h"
 
-#define PURPLE_MESSAGE_GET_PRIVATE(obj) \
-	(G_TYPE_INSTANCE_GET_PRIVATE((obj), PURPLE_TYPE_MESSAGE, PurpleMessagePrivate))
-
 typedef struct {
 	guint id;
 	gchar *author;
@@ -52,11 +49,12 @@
 	PROP_LAST
 };
 
-static GObjectClass *parent_class;
 static GParamSpec *properties[PROP_LAST];
 
 static GHashTable *messages = NULL;
 
+G_DEFINE_TYPE_WITH_PRIVATE(PurpleMessage, purple_message, G_TYPE_OBJECT)
+
 /******************************************************************************
  * API implementation
  ******************************************************************************/
@@ -117,9 +115,9 @@
 }
 
 guint
-purple_message_get_id(const PurpleMessage *msg)
+purple_message_get_id(PurpleMessage *msg)
 {
-	PurpleMessagePrivate *priv = PURPLE_MESSAGE_GET_PRIVATE(msg);
+	PurpleMessagePrivate *priv = purple_message_get_instance_private(msg);
 
 	g_return_val_if_fail(priv != NULL, 0);
 
@@ -135,9 +133,9 @@
 }
 
 const gchar *
-purple_message_get_author(const PurpleMessage *msg)
+purple_message_get_author(PurpleMessage *msg)
 {
-	PurpleMessagePrivate *priv = PURPLE_MESSAGE_GET_PRIVATE(msg);
+	PurpleMessagePrivate *priv = purple_message_get_instance_private(msg);
 
 	g_return_val_if_fail(priv != NULL, NULL);
 
@@ -145,9 +143,9 @@
 }
 
 const gchar *
-purple_message_get_recipient(const PurpleMessage *msg)
+purple_message_get_recipient(PurpleMessage *msg)
 {
-	PurpleMessagePrivate *priv = PURPLE_MESSAGE_GET_PRIVATE(msg);
+	PurpleMessagePrivate *priv = purple_message_get_instance_private(msg);
 
 	g_return_val_if_fail(priv != NULL, NULL);
 
@@ -161,9 +159,9 @@
 }
 
 const gchar *
-purple_message_get_author_alias(const PurpleMessage *msg)
+purple_message_get_author_alias(PurpleMessage *msg)
 {
-	PurpleMessagePrivate *priv = PURPLE_MESSAGE_GET_PRIVATE(msg);
+	PurpleMessagePrivate *priv = purple_message_get_instance_private(msg);
 
 	g_return_val_if_fail(priv != NULL, NULL);
 
@@ -180,9 +178,9 @@
 }
 
 const gchar *
-purple_message_get_contents(const PurpleMessage *msg)
+purple_message_get_contents(PurpleMessage *msg)
 {
-	PurpleMessagePrivate *priv = PURPLE_MESSAGE_GET_PRIVATE(msg);
+	PurpleMessagePrivate *priv = purple_message_get_instance_private(msg);
 
 	g_return_val_if_fail(priv != NULL, NULL);
 
@@ -190,7 +188,7 @@
 }
 
 gboolean
-purple_message_is_empty(const PurpleMessage *msg)
+purple_message_is_empty(PurpleMessage *msg)
 {
 	const gchar *cont = purple_message_get_contents(msg);
 
@@ -204,9 +202,9 @@
 }
 
 guint64
-purple_message_get_time(const PurpleMessage *msg)
+purple_message_get_time(PurpleMessage *msg)
 {
-	PurpleMessagePrivate *priv = PURPLE_MESSAGE_GET_PRIVATE(msg);
+	PurpleMessagePrivate *priv = purple_message_get_instance_private(msg);
 
 	g_return_val_if_fail(priv != NULL, 0);
 
@@ -220,9 +218,9 @@
 }
 
 PurpleMessageFlags
-purple_message_get_flags(const PurpleMessage *msg)
+purple_message_get_flags(PurpleMessage *msg)
 {
-	PurpleMessagePrivate *priv = PURPLE_MESSAGE_GET_PRIVATE(msg);
+	PurpleMessagePrivate *priv = purple_message_get_instance_private(msg);
 
 	g_return_val_if_fail(priv != NULL, 0);
 
@@ -234,12 +232,11 @@
  ******************************************************************************/
 
 static void
-purple_message_init(GTypeInstance *instance, gpointer klass)
+purple_message_init(PurpleMessage *msg)
 {
 	static guint max_id = 0;
 
-	PurpleMessage *msg = PURPLE_MESSAGE(instance);
-	PurpleMessagePrivate *priv = PURPLE_MESSAGE_GET_PRIVATE(msg);
+	PurpleMessagePrivate *priv = purple_message_get_instance_private(msg);
 
 	priv->id = ++max_id;
 	g_hash_table_insert(messages, GINT_TO_POINTER(max_id), msg);
@@ -249,14 +246,14 @@
 purple_message_finalize(GObject *obj)
 {
 	PurpleMessage *message = PURPLE_MESSAGE(obj);
-	PurpleMessagePrivate *priv = PURPLE_MESSAGE_GET_PRIVATE(message);
+	PurpleMessagePrivate *priv = purple_message_get_instance_private(message);
 
 	g_free(priv->author);
 	g_free(priv->author_alias);
 	g_free(priv->recipient);
 	g_free(priv->contents);
 
-	G_OBJECT_CLASS(parent_class)->finalize(obj);
+	G_OBJECT_CLASS(purple_message_parent_class)->finalize(obj);
 }
 
 static void
@@ -264,7 +261,7 @@
 	GParamSpec *pspec)
 {
 	PurpleMessage *message = PURPLE_MESSAGE(object);
-	PurpleMessagePrivate *priv = PURPLE_MESSAGE_GET_PRIVATE(message);
+	PurpleMessagePrivate *priv = purple_message_get_instance_private(message);
 
 	switch (par_id) {
 		case PROP_ID:
@@ -299,7 +296,7 @@
 	GParamSpec *pspec)
 {
 	PurpleMessage *message = PURPLE_MESSAGE(object);
-	PurpleMessagePrivate *priv = PURPLE_MESSAGE_GET_PRIVATE(message);
+	PurpleMessagePrivate *priv = purple_message_get_instance_private(message);
 
 	switch (par_id) {
 		case PROP_AUTHOR:
@@ -335,10 +332,6 @@
 {
 	GObjectClass *gobj_class = G_OBJECT_CLASS(klass);
 
-	parent_class = g_type_class_peek_parent(klass);
-
-	g_type_class_add_private(klass, sizeof(PurpleMessagePrivate));
-
 	gobj_class->finalize = purple_message_finalize;
 	gobj_class->get_property = purple_message_get_property;
 	gobj_class->set_property = purple_message_set_property;
@@ -370,26 +363,6 @@
 	g_object_class_install_properties(gobj_class, PROP_LAST, properties);
 }
 
-GType
-purple_message_get_type(void)
-{
-	static GType type = 0;
-
-	if (G_UNLIKELY(type == 0)) {
-		static const GTypeInfo info = {
-			.class_size = sizeof(PurpleMessageClass),
-			.class_init = (GClassInitFunc)purple_message_class_init,
-			.instance_size = sizeof(PurpleMessage),
-			.instance_init = purple_message_init,
-		};
-
-		type = g_type_register_static(G_TYPE_OBJECT,
-			"PurpleMessage", &info, 0);
-	}
-
-	return type;
-}
-
 void
 _purple_message_init(void)
 {

mercurial