aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc André Tanner <mat@brain-dump.org>2017-06-15 11:57:43 +0200
committerMarc André Tanner <mat@brain-dump.org>2017-06-15 15:51:43 +0200
commite0be1ee5b8e51b670aef863db1309ffd3be818d3 (patch)
tree181a665b8a42f4d61a4a1cea45824139279fc303
parent25c5c274e60f42005a62e63fdeebae6031bbf9fc (diff)
downloadvis-e0be1ee5b8e51b670aef863db1309ffd3be818d3.tar.gz
vis-e0be1ee5b8e51b670aef863db1309ffd3be818d3.tar.xz
array: add array initialization utility function
Reuses the element size from another array.
-rw-r--r--array.c4
-rw-r--r--array.h2
2 files changed, 6 insertions, 0 deletions
diff --git a/array.c b/array.c
index d0f937d..b65ad12 100644
--- a/array.c
+++ b/array.c
@@ -11,6 +11,10 @@ void array_init(Array *arr) {
array_init_sized(arr, sizeof(void*));
}
+void array_init_from(Array *arr, Array *from) {
+ array_init_sized(arr, from->elem_size);
+}
+
void array_init_sized(Array *arr, size_t elem_size) {
memset(arr, 0, sizeof *arr);
arr->elem_size = elem_size;
diff --git a/array.h b/array.h
index 8417f7d..80b3619 100644
--- a/array.h
+++ b/array.h
@@ -43,6 +43,8 @@ void array_init(Array*);
* Initalize an Array object to store arbitrarily sized objects.
*/
void array_init_sized(Array*, size_t elem_size);
+/** Initialize Array by using the same element size as in ``from``. */
+void array_init_from(Array*, Array *from);
/** Release storage space. Reinitializes Array object. */
void array_release(Array*);
/**