]> git.0d.be Git - empathy.git/commitdiff
empathy_message_from_tpl_log_entry: don't leak receiver and sender
authorGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>
Wed, 24 Nov 2010 11:00:11 +0000 (12:00 +0100)
committerGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>
Wed, 24 Nov 2010 11:00:11 +0000 (12:00 +0100)
libempathy/empathy-message.c

index 0ac6e01b59cff6ec07b1c21a9fb9fbc2d22c5250..ca3b020ac9f793d1d8a73231f3e38a2c3c66b83f 100644 (file)
@@ -267,6 +267,7 @@ empathy_message_from_tpl_log_entry (TplEntry *logentry)
        TplEntity *receiver = NULL;
        TplEntity *sender = NULL;
        gchar *body= NULL;
+       EmpathyContact *contact;
 
        g_return_val_if_fail (TPL_IS_ENTRY (logentry), NULL);
 
@@ -303,12 +304,17 @@ empathy_message_from_tpl_log_entry (TplEntry *logentry)
        sender = tpl_entry_get_sender (logentry);
 
        retval = empathy_message_new (body);
-       if (receiver != NULL)
-               empathy_message_set_receiver (retval,
-                               empathy_contact_from_tpl_contact (account, receiver));
-       if (sender != NULL)
-               empathy_message_set_sender (retval,
-                               empathy_contact_from_tpl_contact (account, sender));
+       if (receiver != NULL) {
+               contact = empathy_contact_from_tpl_contact (account, receiver);
+               empathy_message_set_receiver (retval, contact);
+               g_object_unref (contact);
+       }
+
+       if (sender != NULL) {
+               contact = empathy_contact_from_tpl_contact (account, sender);
+               empathy_message_set_sender (retval, contact);
+               g_object_unref (contact);
+       }
 
        empathy_message_set_timestamp (retval,
                        tpl_entry_get_timestamp (logentry));