summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Nikias Bassen2014-01-09 18:49:36 +0100
committerGravatar Nikias Bassen2014-01-09 18:49:36 +0100
commit61c399db59cb61118901819e0956e514dd511885 (patch)
tree8e319feb6ba1ed9f06ccd7f2bf3a03cfc60410d4
parent549da0b893d1d85b5a553a92aef8a4fecb4a602f (diff)
downloadusbmuxd-61c399db59cb61118901819e0956e514dd511885.tar.gz
usbmuxd-61c399db59cb61118901819e0956e514dd511885.tar.bz2
utils: add new collection_copy() function
-rw-r--r--src/utils.c8
-rw-r--r--src/utils.h1
2 files changed, 9 insertions, 0 deletions
diff --git a/src/utils.c b/src/utils.c
index 5296332..9fa4d80 100644
--- a/src/utils.c
+++ b/src/utils.c
@@ -124,6 +124,14 @@ int collection_count(struct collection *col)
return cnt;
}
+void collection_copy(struct collection *dest, struct collection *src)
+{
+ if (!dest || !src) return;
+ dest->capacity = src->capacity;
+ dest->list = malloc(sizeof(void*) * src->capacity);
+ memcpy(dest->list, src->list, sizeof(void*) * src->capacity);
+}
+
#ifndef HAVE_STPCPY
/**
* Copy characters from one string into another
diff --git a/src/utils.h b/src/utils.h
index 730fbad..67477b5 100644
--- a/src/utils.h
+++ b/src/utils.h
@@ -54,6 +54,7 @@ void collection_add(struct collection *col, void *element);
void collection_remove(struct collection *col, void *element);
int collection_count(struct collection *col);
void collection_free(struct collection *col);
+void collection_copy(struct collection *dest, struct collection *src);
#define MERGE_(a,b) a ## _ ## b
#define LABEL_(a,b) MERGE_(a, b)