diff array.c @ 25:e09000fc013a

Switch to void * thus the user do not need to cast
author David Demelier <markand@malikania.fr>
date Thu, 15 Sep 2011 17:53:43 +0200
parents 216b6e6a539c
children 4fd9ecbbb143
line wrap: on
line diff
--- a/array.c	Thu Sep 15 14:31:52 2011 +0200
+++ b/array.c	Thu Sep 15 17:53:43 2011 +0200
@@ -65,8 +65,8 @@
 	if (array_grow(arr) < 0)
 		return -1;
 
-	memmove(arr->data + arr->unit, arr->data, SIZE(arr->length++));
-	memcpy(arr->data, data, arr->unit);
+	memmove((char *) arr->data + arr->unit, arr->data, SIZE(arr->length++));
+	memcpy((char *) arr->data, data, arr->unit);
 
 	return 0;
 }
@@ -83,9 +83,9 @@
 	if (index > arr->length - 1 || index < 0 || array_grow(arr) < 0)
 		return -1;
 
-	memmove(arr->data + SIZE(index + 1), arr->data + SIZE(index),
+	memmove((char *) arr->data + SIZE(index + 1), (char *) arr->data + SIZE(index),
 	    SIZE(arr->length++ - index));
-	memcpy(arr->data + SIZE(index), data, arr->unit);
+	memcpy((char *) arr->data + SIZE(index), data, arr->unit);
 
 	return 0;
 }
@@ -100,7 +100,7 @@
 	if (array_grow(arr) < 0)
 		return -1;
 
-	memcpy(arr->data + SIZE(arr->length++), data, arr->unit);
+	memcpy((char *) arr->data + SIZE(arr->length++), data, arr->unit);
 
 	return 0;
 }
@@ -119,8 +119,9 @@
 		return NULL;
 
 	data = arr->data;
-	memmove(arr->data, arr->data + SIZE(1), SIZE(arr->length));
-	memset(arr->data + SIZE(--arr->length), 0, arr->unit);
+	memmove((char *) arr->data, (char *) arr->data + SIZE(1),
+	    SIZE(arr->length));
+	memset((char *) arr->data + SIZE(--arr->length), 0, arr->unit);
 
 	return data;
 }
@@ -138,8 +139,8 @@
 	if (arr->length == 0)
 		return NULL;
 
-	data = arr->data + SIZE(--arr->length);
-	memset(arr->data + SIZE(arr->length), 0, arr->unit);
+	data = (char *) arr->data + SIZE(--arr->length);
+	memset((char *) arr->data + SIZE(arr->length), 0, arr->unit);
 
 	return data;
 }
@@ -157,10 +158,10 @@
 	if (arr->length == 0 || index < 0 || index > arr->length - 1)
 		return NULL;
 
-	data = arr->data + SIZE(index);
-	memmove(arr->data + SIZE(index), arr->data + SIZE(index + 1),
+	data = (char *) arr->data + SIZE(index);
+	memmove((char *) arr->data + SIZE(index), (char *) arr->data + SIZE(index + 1),
 	    SIZE(arr->length - index));
-	memset(arr->data + SIZE(--arr->length), 0, arr->unit);
+	memset((char *) arr->data + SIZE(--arr->length), 0, arr->unit);
 
 	return data;
 }
@@ -186,9 +187,9 @@
 	if (!arr->tmp && !(arr->tmp = malloc(arr->unit)))
 		return -1;
 
-	memcpy(arr->tmp, arr->data + SIZE(i1), arr->unit);
-	memcpy(arr->data + SIZE(i1), arr->data + SIZE(i2), arr->unit);
-	memcpy(arr->data + SIZE(i2), arr->tmp, arr->unit);
+	memcpy((char *) arr->tmp, (char *) arr->data + SIZE(i1), arr->unit);
+	memcpy((char *) arr->data + SIZE(i1), (char *) arr->data + SIZE(i2), arr->unit);
+	memcpy((char *) arr->data + SIZE(i2), (char *) arr->tmp, arr->unit);
 
 	return 0;
 }
@@ -204,7 +205,7 @@
 	int i;
 
 	for (i = 0; i < arr->length; ++i)
-		fn(arr->data + i, udata);
+		fn((char *) arr->data + SIZE(i), udata);
 }
 
 /*
@@ -215,16 +216,16 @@
  */
 
 void *
-array_find(struct array *arr, int (*fn)(void *, void *), void *udata, int *idx)
+array_find(struct array *arr, int (*fn)(void *, void *), int *idx, void *udata)
 {
 	int st, i;
 	void *data;
 
 	for (i = st = 0; i < arr->length && !st; ++i)
-		st = fn(arr->data + i, udata);
+		st = fn((char *) arr->data + SIZE(i), udata);
 
 	if (st)	{
-		data = arr->data + --i;
+		data = (char *) arr->data + SIZE(--i);
 		if (idx)
 			*idx = i;
 	} else