Mercurial > dovecot > original-hg > dovecot-1.2
changeset 4452:66fc4c35a8de HEAD
Added array_idx_clear().
author | Timo Sirainen <timo.sirainen@movial.fi> |
---|---|
date | Wed, 28 Jun 2006 18:36:42 +0300 |
parents | 1a35d53c18fc |
children | 85fcdb478608 |
files | src/lib/array.h |
diffstat | 1 files changed, 16 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib/array.h Wed Jun 28 16:10:25 2006 +0300 +++ b/src/lib/array.h Wed Jun 28 18:36:42 2006 +0300 @@ -205,6 +205,22 @@ _array_idx_set(&(array)->arr, idx, data); \ } STMT_END +static inline void +_array_idx_clear(struct array *array, unsigned int idx) +{ + size_t pos; + + pos = idx * array->element_size; + if (pos > array->buffer->used) { + /* index doesn't exist yet, initialize with zero */ + buffer_append_zero(array->buffer, pos - array->buffer->used); + } else { + buffer_write_zero(array->buffer, pos, array->element_size); + } +} +#define array_idx_clear(array, idx) \ + _array_idx_clear(&(array)->arr, idx) + static inline void * _array_append_space(struct array *array) {