diff -r 5bbf6b8c30fd -r fdd7282fdad6 libpurple/conversation.c --- a/libpurple/conversation.c Fri Feb 21 02:52:27 2014 +0530 +++ b/libpurple/conversation.c Sun Feb 23 02:40:51 2014 +0530 @@ -310,14 +310,6 @@ return ops_new; } -static void -purple_conversation_ui_ops_free(PurpleConversationUiOps *ops) -{ - g_return_if_fail(ops != NULL); - - g_free(ops); -} - GType purple_conversation_ui_ops_get_type(void) { @@ -326,7 +318,7 @@ if (type == 0) { type = g_boxed_type_register_static("PurpleConversationUiOps", (GBoxedCopyFunc)purple_conversation_ui_ops_copy, - (GBoxedFreeFunc)purple_conversation_ui_ops_free); + (GBoxedFreeFunc)g_free); } return type; @@ -920,13 +912,15 @@ } static PurpleConversationMessage * -purple_conversation_message_copy(PurpleConversationMessage *msg) +copy_conv_message(PurpleConversationMessage *msg) { PurpleConversationMessage *newmsg; g_return_val_if_fail(msg != NULL, NULL); newmsg = g_new(PurpleConversationMessage, 1); + PURPLE_DBUS_REGISTER_POINTER(newmsg, PurpleConversationMessage); + *newmsg = *msg; newmsg->who = g_strdup(msg->who); newmsg->what = g_strdup(msg->what); @@ -935,18 +929,6 @@ return newmsg; } -static void -purple_conversation_message_free(PurpleConversationMessage *msg) -{ - g_return_if_fail(msg != NULL); - - g_free(msg->who); - g_free(msg->what); - g_free(msg->alias); - - g_free(msg); -} - GType purple_conversation_message_get_type(void) { @@ -954,8 +936,8 @@ if (type == 0) { type = g_boxed_type_register_static("PurpleConversationMessage", - (GBoxedCopyFunc)purple_conversation_message_copy, - (GBoxedFreeFunc)purple_conversation_message_free); + (GBoxedCopyFunc)copy_conv_message, + (GBoxedFreeFunc)free_conv_message); } return type;