From c151fc1f157062ec273594505644f7794a047100 Mon Sep 17 00:00:00 2001 From: Tavian Barnes Date: Mon, 9 May 2011 10:44:38 -0600 Subject: Add dmnsn_copy_list() function. --- libdimension/list.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'libdimension/list.c') diff --git a/libdimension/list.c b/libdimension/list.c index 0574744..a44e8f0 100644 --- a/libdimension/list.c +++ b/libdimension/list.c @@ -25,6 +25,21 @@ #include "dimension.h" +dmnsn_list * +dmnsn_copy_list(const dmnsn_list *list) +{ + dmnsn_list *copy = dmnsn_new_list(list->obj_size); + + for (dmnsn_list_iterator *i = dmnsn_list_first(list); + i != NULL; + i = dmnsn_list_next(i)) + { + dmnsn_list_push(copy, dmnsn_list_at(i)); + } + + return copy; +} + dmnsn_list * dmnsn_list_from_array(const dmnsn_array *array) { @@ -46,7 +61,7 @@ dmnsn_array_from_list(const dmnsn_list *list) i != NULL; i = dmnsn_list_next(i)) { - dmnsn_array_push(array, i->ptr); + dmnsn_array_push(array, dmnsn_list_at(i)); } return array; -- cgit v1.2.3