summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEuAndreh <eu@euandre.org>2024-06-06 08:38:33 -0300
committerEuAndreh <eu@euandre.org>2024-06-06 08:38:33 -0300
commit31cd46627834599c99835bf95bf31d8a7e99c9dc (patch)
treeb267d85a9d0246969b6ab202ba8e75dfe513942b /src
parentsrc/hash.c: Update to correct latest siphashbs names (diff)
downloadpindaiba-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.c13
1 files changed, 13 insertions, 0 deletions
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);