This commit is contained in:
twinaphex 2018-04-08 01:56:06 +02:00
parent 2ca52bd08c
commit d58c425e43
1 changed files with 21 additions and 6 deletions

View File

@ -62,9 +62,10 @@ static void free_string_list(struct string_list *dest)
FREE(dest->elems); FREE(dest->elems);
} }
static struct string_list* clone_string_list(const struct string_list *src) static struct string_list *clone_string_list(const struct string_list *src)
{ {
unsigned i; unsigned i;
struct string_list_elem *elems = NULL;
struct string_list *dest = NULL; struct string_list *dest = NULL;
if (!src) if (!src)
@ -72,16 +73,30 @@ static struct string_list* clone_string_list(const struct string_list *src)
dest = (struct string_list*) dest = (struct string_list*)
calloc(1, sizeof(struct string_list)); calloc(1, sizeof(struct string_list));
if (!dest)
return NULL;
dest->size = src->size; dest->size = src->size;
dest->cap = src->cap; dest->cap = src->cap;
dest->elems = (struct string_list_elem*)
elems = (struct string_list_elem*)
calloc(dest->size, sizeof(struct string_list_elem)); calloc(dest->size, sizeof(struct string_list_elem));
if (!elems)
{
free(dest);
return NULL;
}
dest->elems = elems;
for (i = 0; i < src->size; i++) for (i = 0; i < src->size; i++)
{ {
dest->elems[i].data = strcpy_alloc(src->elems[i].data); dest->elems[i].data = strcpy_alloc(src->elems[i].data);
dest->elems[i].attr = src->elems[i].attr; dest->elems[i].attr = src->elems[i].attr;
} }
return dest; return dest;
} }