summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSøren Sandmann Pedersen <sandmann@daimi.au.dk>2009-04-17 20:04:58 -0400
committerSøren Sandmann Pedersen <sandmann@daimi.au.dk>2009-04-17 20:04:58 -0400
commitf77e468dca15734799b2c524f15f2e9046d220e2 (patch)
tree9970366caab19a69de09fc9d57fc65aa9dc8faea
parent584746085736e975b99157fcf27322595bb64ef4 (diff)
Add general array_len
-rw-r--r--array.c14
1 files 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