Mercurial > dovecot > core-2.2
changeset 15571:9fda4feb6e2d
Added buffer_verify_pool()
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Fri, 04 Jan 2013 03:50:18 +0200 |
parents | abcc9959b757 |
children | a7a45a56211c |
files | src/lib/buffer.c src/lib/buffer.h |
diffstat | 2 files changed, 20 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib/buffer.c Thu Jan 03 07:30:54 2013 +0200 +++ b/src/lib/buffer.c Fri Jan 04 03:50:18 2013 +0200 @@ -314,3 +314,17 @@ return memcmp(buf1->data, buf2->data, buf1->used) == 0; } + +void buffer_verify_pool(buffer_t *_buf) +{ + const struct real_buffer *buf = (const struct real_buffer *)_buf; + void *ret; + + if (buf->pool->datastack_pool) { + /* this doesn't really do anything except verify the + stack frame */ + ret = p_realloc(buf->pool, buf->w_buffer, + buf->alloc, buf->alloc); + i_assert(ret == buf->w_buffer); + } +}
--- a/src/lib/buffer.h Thu Jan 03 07:30:54 2013 +0200 +++ b/src/lib/buffer.h Fri Jan 04 03:50:18 2013 +0200 @@ -102,4 +102,10 @@ return buf->used; } +/* Crash if buffer was allocated from data stack and stack frame has changed. + This can be used as an assert-like check to verify that it's valid to + increase the buffer size here, instead of crashing only randomly when the + buffer needs to be increased. */ +void buffer_verify_pool(buffer_t *buf); + #endif