From a9746b306d32cc2d2bc5d446f6f7ae7c7068ba79 Mon Sep 17 00:00:00 2001 From: Edward Thomson Date: Fri, 29 May 2020 11:21:55 +0100 Subject: strarray: move to its own file --- src/strarray.c | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/util.c | 46 ---------------------------------------------- 2 files changed, 56 insertions(+), 46 deletions(-) create mode 100644 src/strarray.c diff --git a/src/strarray.c b/src/strarray.c new file mode 100644 index 000000000..ebd581483 --- /dev/null +++ b/src/strarray.c @@ -0,0 +1,56 @@ +/* + * Copyright (C) the libgit2 contributors. All rights reserved. + * + * This file is part of libgit2, distributed under the GNU GPL v2 with + * a Linking Exception. For full terms see the included COPYING file. + */ + +#include "util.h" + +#include "common.h" + +int git_strarray_copy(git_strarray *tgt, const git_strarray *src) +{ + size_t i; + + assert(tgt && src); + + memset(tgt, 0, sizeof(*tgt)); + + if (!src->count) + return 0; + + tgt->strings = git__calloc(src->count, sizeof(char *)); + GIT_ERROR_CHECK_ALLOC(tgt->strings); + + for (i = 0; i < src->count; ++i) { + if (!src->strings[i]) + continue; + + tgt->strings[tgt->count] = git__strdup(src->strings[i]); + if (!tgt->strings[tgt->count]) { + git_strarray_free(tgt); + memset(tgt, 0, sizeof(*tgt)); + return -1; + } + + tgt->count++; + } + + return 0; +} + +void git_strarray_free(git_strarray *array) +{ + size_t i; + + if (array == NULL) + return; + + for (i = 0; i < array->count; ++i) + git__free(array->strings[i]); + + git__free(array->strings); + + memset(array, 0, sizeof(*array)); +} diff --git a/src/util.c b/src/util.c index 745f840c0..c4e322d5a 100644 --- a/src/util.c +++ b/src/util.c @@ -22,52 +22,6 @@ # include #endif -void git_strarray_free(git_strarray *array) -{ - size_t i; - - if (array == NULL) - return; - - for (i = 0; i < array->count; ++i) - git__free(array->strings[i]); - - git__free(array->strings); - - memset(array, 0, sizeof(*array)); -} - -int git_strarray_copy(git_strarray *tgt, const git_strarray *src) -{ - size_t i; - - assert(tgt && src); - - memset(tgt, 0, sizeof(*tgt)); - - if (!src->count) - return 0; - - tgt->strings = git__calloc(src->count, sizeof(char *)); - GIT_ERROR_CHECK_ALLOC(tgt->strings); - - for (i = 0; i < src->count; ++i) { - if (!src->strings[i]) - continue; - - tgt->strings[tgt->count] = git__strdup(src->strings[i]); - if (!tgt->strings[tgt->count]) { - git_strarray_free(tgt); - memset(tgt, 0, sizeof(*tgt)); - return -1; - } - - tgt->count++; - } - - return 0; -} - int git__strntol64(int64_t *result, const char *nptr, size_t nptr_len, const char **endptr, int base) { const char *p; -- cgit v1.2.1