dovecot-1.1: buffer_reset(buf) and buffer_set_used_size(buf, 0) ...
dovecot at dovecot.org
dovecot at dovecot.org
Fri Feb 29 03:30:39 EET 2008
details: http://hg.dovecot.org/dovecot-1.1/rev/db4a29902723
changeset: 7303:db4a29902723
user: Timo Sirainen <tss at iki.fi>
date: Fri Feb 29 03:33:27 2008 +0200
description:
buffer_reset(buf) and buffer_set_used_size(buf, 0) now do the same thing.
diffstat:
1 file changed, 10 insertions(+), 8 deletions(-)
src/lib/buffer.c | 18 ++++++++++--------
diffs (42 lines):
diff -r 8e65f6755843 -r db4a29902723 src/lib/buffer.c
--- a/src/lib/buffer.c Fri Feb 29 03:31:06 2008 +0200
+++ b/src/lib/buffer.c Fri Feb 29 03:33:27 2008 +0200
@@ -47,6 +47,12 @@ buffer_check_limits(struct real_buffer *
}
new_size = pos + data_size;
+ if (new_size > buf->used && buf->used < buf->dirty) {
+ /* clear used..dirty area */
+ size_t max = I_MIN(I_MIN(buf->alloc, buf->dirty), new_size);
+
+ memset(buf->w_buffer + buf->used, 0, max - buf->used);
+ }
if (new_size > buf->alloc) {
if (unlikely(!buf->dynamic)) {
i_panic("Buffer full (%"PRIuSIZE_T" > %"PRIuSIZE_T", "
@@ -142,13 +148,9 @@ pool_t buffer_get_pool(buffer_t *_buf)
return buf->pool;
}
-void buffer_reset(buffer_t *_buf)
-{
- struct real_buffer *buf = (struct real_buffer *)_buf;
-
- memset(buf->w_buffer, 0, I_MAX(buf->used, buf->dirty));
- buf->dirty = 0;
- buf->used = 0;
+void buffer_reset(buffer_t *buf)
+{
+ buffer_set_used_size(buf, 0);
}
void buffer_write(buffer_t *_buf, size_t pos,
@@ -287,7 +289,7 @@ void buffer_set_used_size(buffer_t *_buf
i_assert(used_size <= buf->alloc);
- if (used_size < buf->used && buf->used > buf->dirty)
+ if (buf->used > buf->dirty)
buf->dirty = buf->used;
buf->used = used_size;
More information about the dovecot-cvs
mailing list