From f77e468dca15734799b2c524f15f2e9046d220e2 Mon Sep 17 00:00:00 2001 From: Søren Sandmann Pedersen Date: Fri, 17 Apr 2009 20:04:58 -0400 Subject: Add general array_len --- array.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/array.c b/array.c index 90af331..6c23330 100644 --- a/array.c +++ b/array.c @@ -177,6 +177,14 @@ array_append (void *data, return data; } +static gssize +array_len (void *data, const int *magic) +{ + array_t *array = get_array (data, magic); + + return array->n_elements; +} + /***************************** individual array implementations ****************************/ /* Generic arrays @@ -215,7 +223,7 @@ nul_array_free (nul_ptr_t array) gsize nul_array_len (nul_ptr_t array) { - return get_array (array, &arr_t_magic)->n_elements; + return array_len (array, &arr_t_magic); } /* Pointer arrays. The idiomatic way to iterate through such an array is: @@ -272,7 +280,7 @@ nul_ptr_array_free (void **arr) gsize nul_ptr_array_len (void *const *arr) { - return get_array (arr, &parr_t_magic)->n_elements; + return array_len (arr, &parr_t_magic); } /* @@ -295,7 +303,7 @@ nul_string_free (nul_string_t *str) gsize nul_string_len (const nul_string_t *str) { - return get_array (str, &string_t_magic)->n_elements; + return array_len (str, &string_t_magic); } gboolean -- cgit v1.2.3