diff options
author | Jeffrey Stedfast <fejj@ximian.com> | 2001-10-04 09:53:36 +0800 |
---|---|---|
committer | Jeffrey Stedfast <fejj@src.gnome.org> | 2001-10-04 09:53:36 +0800 |
commit | 1d4100c58a6a4506986ea22dc4cf6dbfe666ede1 (patch) | |
tree | 254f851105c5b885f728d627cfd74bd4b0aeecde /composer/e-msg-composer.c | |
parent | 1d12357e619efc28b3616ad51d9fad0b7f46e53e (diff) | |
download | gsoc2013-evolution-1d4100c58a6a4506986ea22dc4cf6dbfe666ede1.tar.gz gsoc2013-evolution-1d4100c58a6a4506986ea22dc4cf6dbfe666ede1.tar.zst gsoc2013-evolution-1d4100c58a6a4506986ea22dc4cf6dbfe666ede1.zip |
Make sure to unref the message object so we don't leak it or any
2001-10-03 Jeffrey Stedfast <fejj@ximian.com>
* e-msg-composer.c (autosave_save_draft): Make sure to unref the
message object so we don't leak it or any references to
attachments (child mime parts).
* e-msg-composer-attachment.c (e_msg_composer_attachment_new):
Unref the mime part after passing it along to new_from_mime_part.
svn path=/trunk/; revision=13402
Diffstat (limited to 'composer/e-msg-composer.c')
-rw-r--r-- | composer/e-msg-composer.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/composer/e-msg-composer.c b/composer/e-msg-composer.c index d8cf2cb397..fda86508ed 100644 --- a/composer/e-msg-composer.c +++ b/composer/e-msg-composer.c @@ -1022,7 +1022,7 @@ static AutosaveManager *am = NULL; static gboolean autosave_save_draft (EMsgComposer *composer) { - CamelMimeMessage *msg; + CamelMimeMessage *message; CamelStream *stream; char *file; gint fd; @@ -1037,21 +1037,23 @@ autosave_save_draft (EMsgComposer *composer) return FALSE; } - msg = e_msg_composer_get_message_draft (composer); + message = e_msg_composer_get_message_draft (composer); - if (msg == NULL) { + if (message == NULL) { e_notice (GTK_WINDOW (composer), GNOME_MESSAGE_BOX_ERROR, _("Unable to retrieve message from editor")); return FALSE; } if (lseek (fd, (off_t)0, SEEK_SET) == -1) { + camel_object_unref (CAMEL_OBJECT (message)); e_notice (GTK_WINDOW (composer), GNOME_MESSAGE_BOX_ERROR, _("Unable to seek on file: %s\n%s"), file, g_strerror (errno)); return FALSE; } if (ftruncate (fd, (off_t)0) == -1) { + camel_object_unref (CAMEL_OBJECT (message)); e_notice (GTK_WINDOW (composer), GNOME_MESSAGE_BOX_ERROR, _("Unable to truncate file: %s\n%s"), file, g_strerror (errno)); return FALSE; @@ -1059,7 +1061,7 @@ autosave_save_draft (EMsgComposer *composer) /* this does an lseek so we don't have to */ stream = camel_stream_fs_new_with_fd (fd); - if (camel_data_wrapper_write_to_stream ((CamelDataWrapper *)msg, stream) == -1 + if (camel_data_wrapper_write_to_stream (CAMEL_DATA_WRAPPER (message), stream) == -1 || camel_stream_flush (CAMEL_STREAM (stream)) == -1) { e_notice (GTK_WINDOW (composer), GNOME_MESSAGE_BOX_ERROR, _("Error autosaving message: %s\n %s"), file, strerror(errno)); @@ -1070,7 +1072,9 @@ autosave_save_draft (EMsgComposer *composer) /* set the fd to -1 in the stream so camel doesn't close it we want to keep it open */ CAMEL_STREAM_FS (stream)->fd = -1; camel_object_unref (CAMEL_OBJECT (stream)); - + + camel_object_unref (CAMEL_OBJECT (message)); + return success; } |