diff array.h @ 29:19c0d2e11406

Security fixes for array
author David Demelier <markand@malikania.fr>
date Thu, 22 Sep 2011 21:07:51 +0200
parents 02b0ee204042
children e2c3a0a549d2
line wrap: on
line diff
--- a/array.h	Thu Sep 22 13:03:27 2011 +0200
+++ b/array.h	Thu Sep 22 21:07:51 2011 +0200
@@ -43,12 +43,12 @@
 int	array_push(struct array *, const void *);
 int	array_insert(struct array *, const void *, int);
 int	array_append(struct array *, const void *);
-void	*array_pop(struct array *);
-void	*array_unqueue(struct array *);
-void	*array_remove(struct array *, int);
+void	array_pop(struct array *);
+void	array_unqueue(struct array *);
+void	array_remove(struct array *, int);
 int	array_swap(struct array *, int, int);
-void	array_map(struct array *, void (*fn)(void *, void *), void *);
-void	*array_find(struct array *, int (*fn)(void *, void *), int *, void *);
+void	array_map(const struct array *, void (*fn)(void *, void *), void *);
+void	*array_find(const struct array *, int (*fn)(void *, void *), int *, void *);
 void	array_clear(struct array *);
 void	array_free(struct array *);
 
@@ -60,4 +60,9 @@
 	    var = (void *) ((char *) a->data + a->unit * (a->length - 1));	\
 	    i < a->length; ++i, --var)	
 
+#define ARRAY_HEAD(a)								\
+	a->data
+#define ARRAY_TAIL(a)								\
+	(void *) ((char *) a->data + (a->unit * (a->length - 1)))
+
 #endif /* _ARRAY_H_ */