From 31cd46627834599c99835bf95bf31d8a7e99c9dc Mon Sep 17 00:00:00 2001 From: EuAndreh Date: Thu, 6 Jun 2024 08:38:33 -0300 Subject: src/set.c: Initialize Tree entries in set_new() --- src/set.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/set.c b/src/set.c index 1a5fc92..978115e 100644 --- a/src/set.c +++ b/src/set.c @@ -34,6 +34,7 @@ set_new(const size_t value_size, const struct Set **const out) { const struct Set *ret = NULL; const struct Vector *table = NULL; + const struct Tree *tree_template = NULL; ret = malloc(sizeof(*ret)); if (ret == NULL) { @@ -46,6 +47,15 @@ set_new(const size_t value_size, const struct Set **const out) { goto out; } + if (tree_new(value_size, &tree_template)) { + logerr("tree_new()"); + goto out; + } + + for (size_t _i = 0U; _i < vector_capacity(table); _i++) { + assert(vector_push_back(table, tree_template) == 0); + } + memcpy((void *)ret, &(struct Set) { .table = table, .value_size = value_size, @@ -54,6 +64,9 @@ set_new(const size_t value_size, const struct Set **const out) { *out = ret; rc = 0; out: + if (tree_template != NULL) { + tree_free(&tree_template); + } if (rc) { if (table != NULL) { vector_free(&table); -- cgit v1.2.3