diff options
author | Russell Belfer <rb@github.com> | 2013-03-18 15:54:35 -0700 |
---|---|---|
committer | Russell Belfer <rb@github.com> | 2013-03-18 15:54:35 -0700 |
commit | 324602514fec5ba04fa236c67d633f9b18ad9845 (patch) | |
tree | bdbf4505fd513029e03a4a1aaa027b23baa24e1e /src/util.c | |
parent | 41954a49c12a72eda3b3fe02c2752f6831b5dbf9 (diff) | |
download | libgit2-324602514fec5ba04fa236c67d633f9b18ad9845.tar.gz |
Fixes and cleanups
Get rid of some dead code, tighten things up a bit, and fix a bug
with core::env test.
Diffstat (limited to 'src/util.c')
-rw-r--r-- | src/util.c | 60 |
1 files changed, 7 insertions, 53 deletions
diff --git a/src/util.c b/src/util.c index ba867b440..f5b4a1d68 100644 --- a/src/util.c +++ b/src/util.c @@ -112,78 +112,32 @@ void git_strarray_free(git_strarray *array) int git_strarray_copy(git_strarray *tgt, const git_strarray *src) { - assert(tgt && src); - - memset(tgt, 0, sizeof(*tgt)); - return git_strarray_prepend(tgt, src); -} - -int git_strarray_set(git_strarray *tgt, size_t count, ...) -{ size_t i; - va_list ap; - assert(tgt); + assert(tgt && src); memset(tgt, 0, sizeof(*tgt)); - if (!count) + if (!src->count) return 0; - tgt->strings = git__calloc(count, sizeof(char *)); + tgt->strings = git__calloc(src->count, sizeof(char *)); GITERR_CHECK_ALLOC(tgt->strings); - va_start(ap, count); - for (i = 0; i < count; ++i) { - const char *str = va_arg(ap, const char *); - if (!str) + for (i = 0; i < src->count; ++i) { + if (!src->strings[i]) continue; - tgt->strings[tgt->count] = git__strdup(str); + tgt->strings[tgt->count] = git__strdup(src->strings[i]); if (!tgt->strings[tgt->count]) { git_strarray_free(tgt); - va_end(ap); + memset(tgt, 0, sizeof(*tgt)); return -1; } tgt->count++; } - va_end(ap); - - return 0; -} - -int git_strarray_prepend(git_strarray *tgt, const git_strarray *src) -{ - size_t i; - git_strarray merge; - - if (!src || !src->count) - return 0; - - merge.count = 0; - merge.strings = git__calloc(tgt->count + src->count, sizeof(char *)); - GITERR_CHECK_ALLOC(merge.strings); - - for (i = 0; i < src->count; ++i) { - if (!src->strings[i]) - continue; - - merge.strings[merge.count] = git__strdup(src->strings[i]); - if (!merge.strings[merge.count]) { - git_strarray_free(&merge); - return -1; - } - - merge.count++; - } - - for (i = 0; i < tgt->count; ++i) - if (tgt->strings[i]) - merge.strings[merge.count++] = tgt->strings[i]; - git__free(tgt->strings); - memcpy(tgt, &merge, sizeof(merge)); return 0; } |