summaryrefslogtreecommitdiff
path: root/src/array.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/array.h')
-rw-r--r--src/array.h32
1 files changed, 17 insertions, 15 deletions
diff --git a/src/array.h b/src/array.h
index 5119e7e..a98b92a 100644
--- a/src/array.h
+++ b/src/array.h
@@ -20,32 +20,34 @@
#define ARRAY_INITIAL_CAPACITY 4
-#define array(T) (T *)array_new(sizeof(T))
-
-#define array_append(arr, item) do { \
- array_header_t *h = array_get_header(arr); \
- if (h->capacity < h->length + 1) { \
- arr = array_grow(arr); \
- } \
- arr[h->length++] = item; \
+#define array(T) (T*)array_new(sizeof(T))
+
+#define array_append(arr, item) \
+ do { \
+ array_header_t* h = array_get_header(arr); \
+ if (h->capacity < h->length + 1) { \
+ arr = array_grow(arr); \
+ } \
+ arr[h->length++] = item; \
} while (0)
-typedef struct array_header {
+typedef struct array_header
+{
size_t capacity;
size_t item_size;
size_t length;
} array_header_t;
-void *
+void*
array_new(size_t item_size);
-array_header_t *
-array_get_header(void *arr);
+array_header_t*
+array_get_header(void* arr);
-void *
-array_grow(void *arr);
+void*
+array_grow(void* arr);
size_t
-array_length(void *arr);
+array_length(void* arr);
#endif /* ARRAY_H */