changeset 8972:9ab0177cd004 HEAD

array_idx_clear() was broken when clearing an index outside the existing array.
author Timo Sirainen <tss@iki.fi>
date Mon, 20 Apr 2009 14:43:15 -0400
parents 163c3f85a3aa
children 796149c5f3f0
files src/lib/array.c
diffstat 1 files changed, 2 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib/array.c	Mon Apr 20 13:28:00 2009 -0400
+++ b/src/lib/array.c	Mon Apr 20 14:43:15 2009 -0400
@@ -35,7 +35,8 @@
 	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);
+		buffer_append_zero(array->buffer, pos - array->buffer->used +
+				   array->element_size);
 	} else {
 		buffer_write_zero(array->buffer, pos, array->element_size);
 	}