diff options
author | EuAndreh <eu@euandre.org> | 2024-06-06 08:38:33 -0300 |
---|---|---|
committer | EuAndreh <eu@euandre.org> | 2024-06-06 08:38:33 -0300 |
commit | 31cd46627834599c99835bf95bf31d8a7e99c9dc (patch) | |
tree | b267d85a9d0246969b6ab202ba8e75dfe513942b /src | |
parent | src/hash.c: Update to correct latest siphashbs names (diff) | |
download | pindaiba-31cd46627834599c99835bf95bf31d8a7e99c9dc.tar.gz pindaiba-31cd46627834599c99835bf95bf31d8a7e99c9dc.tar.xz |
src/set.c: Initialize Tree entries in set_new()
Diffstat (limited to 'src')
-rw-r--r-- | src/set.c | 13 |
1 files changed, 13 insertions, 0 deletions
@@ -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); |