[dovecot-cvs] dovecot/src/lib buffer.c,1.15,1.16 buffer.h,1.8,1.9
cras at dovecot.org
cras at dovecot.org
Wed Aug 18 03:59:49 EEST 2004
Update of /home/cvs/dovecot/src/lib
In directory talvi:/tmp/cvs-serv9511
Modified Files:
buffer.c buffer.h
Log Message:
Added buffer_reset()
Index: buffer.c
===================================================================
RCS file: /home/cvs/dovecot/src/lib/buffer.c,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -d -r1.15 -r1.16
--- buffer.c 31 Jul 2004 20:53:07 -0000 1.15
+++ buffer.c 18 Aug 2004 00:59:47 -0000 1.16
@@ -12,7 +12,7 @@
/* private: */
unsigned char *w_buffer;
- size_t alloc, max_alloc;
+ size_t dirty, alloc, max_alloc;
pool_t pool;
@@ -159,6 +159,15 @@
return data;
}
+void buffer_reset(buffer_t *_buf)
+{
+ struct real_buffer *buf = (struct real_buffer *)_buf;
+
+ memset(buf, 0, I_MAX(buf->used, buf->dirty));
+ buf->dirty = 0;
+ buf->used = 0;
+}
+
size_t buffer_write(buffer_t *_buf, size_t pos,
const void *data, size_t data_size)
{
@@ -293,6 +302,9 @@
i_assert(used_size <= buf->alloc);
+ if (used_size < buf->used && buf->used > buf->dirty)
+ buf->dirty = buf->used;
+
buf->used = used_size;
}
Index: buffer.h
===================================================================
RCS file: /home/cvs/dovecot/src/lib/buffer.h,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -d -r1.8 -r1.9
--- buffer.h 31 Jul 2004 22:34:44 -0000 1.8
+++ buffer.h 18 Aug 2004 00:59:47 -0000 1.9
@@ -30,6 +30,9 @@
unfree'd. */
void *buffer_free_without_data(buffer_t *buf);
+/* Reset the buffer. used size and it's contents are zeroed. */
+void buffer_reset(buffer_t *buf);
+
/* Write data to buffer at specified position, returns number of bytes
written. */
size_t buffer_write(buffer_t *buf, size_t pos,
More information about the dovecot-cvs
mailing list