changeset 3196:b426b1d58296 HEAD

#ifdefs were wrong, we need both __GNUC__ and DEBUG to do type checking. Added new ARRAY_TYPE_CHECKS macro which can also be defined manually to enable it.
author Timo Sirainen <tss@iki.fi>
date Sun, 13 Mar 2005 00:44:37 +0200
parents 10532f156263
children b6faacb023a0
files src/lib/array.h
diffstat 1 files changed, 13 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib/array.h	Sun Mar 13 00:39:06 2005 +0200
+++ b/src/lib/array.h	Sun Mar 13 00:44:37 2005 +0200
@@ -36,6 +36,10 @@
    }
 */
 #if defined (DEBUG) && defined (__GNUC__)
+#  define ARRAY_TYPE_CHECKS
+#endif
+
+#ifdef ARRAY_TYPE_CHECKS
 #  define ARRAY_DEFINE(name, array_type) name; array_type *name ## __ ## type
 #  define ARRAY_CREATE(array, pool, array_type, init_count) STMT_START { \
 	array_type *_array_tmp = *(array ## __ ## type); _array_tmp = NULL; \
@@ -96,7 +100,7 @@
 {
 	buffer_append(array->buffer, data, count * array->element_size);
 }
-#ifndef DEBUG
+#ifndef ARRAY_TYPE_CHECKS
 #  define array_append _array_append
 #else
 #  define array_append(array, data, count) STMT_START { \
@@ -119,7 +123,7 @@
 	buffer_insert(array->buffer, idx * array->element_size,
 		      data, count * array->element_size);
 }
-#ifndef DEBUG
+#ifndef ARRAY_TYPE_CHECKS
 #  define array_insert _array_insert
 #else
 #  define array_insert(array, idx, data, count) STMT_START { \
@@ -142,7 +146,7 @@
 		*count_r = array->buffer->used / array->element_size;
 	return array->buffer->data;
 }
-#ifndef DEBUG
+#ifndef ARRAY_TYPE_CHECKS
 #  define array_get _array_get
 #else
 #  define array_get(array, count) \
@@ -155,7 +159,7 @@
 	i_assert(idx * array->element_size < array->buffer->used);
 	return CONST_PTR_OFFSET(array->buffer->data, idx * array->element_size);
 }
-#ifndef DEBUG
+#ifndef ARRAY_TYPE_CHECKS
 #  define array_idx _array_idx
 #else
 #  define array_idx(array, idx) \
@@ -169,7 +173,7 @@
 		*count_r = array->buffer->used / array->element_size;
 	return buffer_get_modifyable_data(array->buffer, NULL);
 }
-#ifndef DEBUG
+#ifndef ARRAY_TYPE_CHECKS
 #  define array_get_modifyable _array_get_modifyable
 #else
 #  define array_get_modifyable(array, count) \
@@ -190,7 +194,7 @@
 	}
 	return buffer_get_space_unsafe(array->buffer, pos, array->element_size);
 }
-#ifndef DEBUG
+#ifndef ARRAY_TYPE_CHECKS
 #  define array_modifyable_idx _array_modifyable_idx
 #else
 #  define array_modifyable_idx(array, count) \
@@ -210,7 +214,7 @@
 	}
 	buffer_write(array->buffer, pos, data, array->element_size);
 }
-#ifndef DEBUG
+#ifndef ARRAY_TYPE_CHECKS
 #  define array_idx_set _array_idx_set
 #else
 #  define array_idx_set(array, idx, data) STMT_START { \
@@ -228,7 +232,7 @@
 	memset(data, 0, array->element_size);
 	return data;
 }
-#ifndef DEBUG
+#ifndef ARRAY_TYPE_CHECKS
 #  define array_modifyable_append _array_modifyable_append
 #else
 #  define array_modifyable_append(array) \
@@ -250,7 +254,7 @@
 	memset(data, 0, array->element_size);
 	return data;
 }
-#ifndef DEBUG
+#ifndef ARRAY_TYPE_CHECKS
 #  define array_modifyable_insert _array_modifyable_insert
 #else
 #  define array_modifyable_insert(array, idx) \