diff options
author | David Woodhouse <David.Woodhouse@intel.com> | 2010-07-14 18:54:01 +0800 |
---|---|---|
committer | David Woodhouse <David.Woodhouse@intel.com> | 2010-07-15 23:48:45 +0800 |
commit | 8ae4bf802aac4218ebfbe10cae09693ba64c05f3 (patch) | |
tree | 4e50ee1855cdf96f5b936040dcafded1b312959f /mail/e-mail-reader-utils.c | |
parent | 1e6adfccc83fdbf7862fabd883ca1ba8d9a848c2 (diff) | |
download | gsoc2013-evolution-8ae4bf802aac4218ebfbe10cae09693ba64c05f3.tar gsoc2013-evolution-8ae4bf802aac4218ebfbe10cae09693ba64c05f3.tar.gz gsoc2013-evolution-8ae4bf802aac4218ebfbe10cae09693ba64c05f3.tar.bz2 gsoc2013-evolution-8ae4bf802aac4218ebfbe10cae09693ba64c05f3.tar.lz gsoc2013-evolution-8ae4bf802aac4218ebfbe10cae09693ba64c05f3.tar.xz gsoc2013-evolution-8ae4bf802aac4218ebfbe10cae09693ba64c05f3.tar.zst gsoc2013-evolution-8ae4bf802aac4218ebfbe10cae09693ba64c05f3.zip |
Fix two memory leaks when replying
1: em_utils_reply_to_message() can be passed a newly-created message (from
a current selection. It needs to unref it. Which means that when we pass it
a message which *isn't* newly-created, we have to obtain a ref of our own.
It was that or add a boolean parameter to tell it whether to unref or not.
2: emf_finalize() wasn't unreferencing emf->message -- so when we clone
the EMFormat in em_utils_message_to_html() and immediately unreference the
clone, a refcount on the message got leaked. Fix emf_finalize() to unref
emf->message as presumably it should.
Diffstat (limited to 'mail/e-mail-reader-utils.c')
-rw-r--r-- | mail/e-mail-reader-utils.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/mail/e-mail-reader-utils.c b/mail/e-mail-reader-utils.c index 24655e72c7..8827375ed3 100644 --- a/mail/e-mail-reader-utils.c +++ b/mail/e-mail-reader-utils.c @@ -384,8 +384,11 @@ e_mail_reader_reply_to_message (EMailReader *reader, CamelMimeMessage *src_messa if (!gtk_widget_get_mapped (GTK_WIDGET(web_view))) goto whole_message; - if (!src_message) + if (!src_message) { src_message = CAMEL_MIME_MESSAGE (EM_FORMAT (formatter)->message); + if (src_message) + g_object_ref(src_message); + } if (!e_mail_reader_get_quote_from_selection (reader)) goto whole_message; @@ -421,6 +424,7 @@ e_mail_reader_reply_to_message (EMailReader *reader, CamelMimeMessage *src_messa CAMEL_MIME_PART (new_message), selection, length, "text/html"); + g_object_unref(src_message); em_utils_reply_to_message ( folder, uid, new_message, reply_mode, NULL); |