From 36848494f57ff8cdc95876c95c36052eca40ccdb Mon Sep 17 00:00:00 2001 From: Hisham Muhammad Date: Sun, 12 Nov 2006 21:52:14 +0000 Subject: Add debugging sanity checks. --- Vector.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'Vector.c') diff --git a/Vector.c b/Vector.c index 0ee290a8..4c2a4f9b 100644 --- a/Vector.c +++ b/Vector.c @@ -74,6 +74,16 @@ static inline bool Vector_isConsistent(Vector* this) { } } +int Vector_count(Vector* this) { + int items = 0; + for (int i = 0; i < this->items; i++) { + if (this->array[i]) + items++; + } + assert(items == this->items); + return items; +} + #endif void Vector_prune(Vector* this) { @@ -223,8 +233,9 @@ void Vector_add(Vector* this, void* data_) { assert(data_ && ((Object*)data_)->class == this->vectorType); Object* data = data_; assert(Vector_isConsistent(this)); - + int i = this->items; Vector_set(this, this->items, data); + assert(this->items == i+1); (void)(i); assert(Vector_isConsistent(this)); } -- cgit v1.2.3