summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org>2020-08-11 11:24:17 +0300
committerSergey Poznyakoff <gray@gnu.org>2020-08-11 11:24:17 +0300
commit0f1a6e4109a7f174bb127281e15579fbb576128d (patch)
tree805b6ffe1558a091bb24de237d56ad754a128a6c /include
parentbf200fbd238cb5da42bb7fc8ad2cd433c7135fe3 (diff)
downloadmailutils-0f1a6e4109a7f174bb127281e15579fbb576128d.tar.gz
mailutils-0f1a6e4109a7f174bb127281e15579fbb576128d.tar.bz2
Allow the caller to unref messages obtained from the mailbox
* include/mailutils/sys/message.h (struct _mu_message): New member: _detach. * libmailutils/mailbox/msgref.c (_mu_message_free): Detach message from the owning object. * libmailutils/base/amd.c (_amd_attach_message): Provide the _detach method. * libproto/dotmail/message.c (mu_dotmail_message_get): Initialize the _detach member. * libproto/imap/mbox.c (_imap_mbx_get_message): Likewise. * libproto/mbox/mbox.c (new_message): Likewise. * libproto/pop/mbox.c (pop_create_message): Likewise. * libmailutils/stream/temp_stream.c (temp_stream_write): Tempfile stream is created fully buffered. Free the buffer before reinitializing. * lib/mdecode.c (message_body_stream): Change error message for MU_ERR_NOENT. * decodemail/decodemail.c (main): Unref the original message to decrease memory usage.
Diffstat (limited to 'include')
-rw-r--r--include/mailutils/sys/message.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/mailutils/sys/message.h b/include/mailutils/sys/message.h
index b18796d0a..757dd3cd6 100644
--- a/include/mailutils/sys/message.h
+++ b/include/mailutils/sys/message.h
@@ -65,6 +65,7 @@ struct _mu_message
int (*_is_multipart) (mu_message_t, int *);
int (*_lines) (mu_message_t, size_t *, int);
int (*_size) (mu_message_t, size_t *);
+ void (*_detach) (mu_message_t);
};
#ifdef __cplusplus

Return to:

Send suggestions and report system problems to the System administrator.