aboutsummaryrefslogtreecommitdiff
path: root/src/storage.c
diff options
context:
space:
mode:
authorSoikk2022-08-13 21:32:42 +0200
committerSoikk2022-08-13 21:32:42 +0200
commit1faec2ebd0c7151ff67390f7de7873f4b07cabb9 (patch)
tree7b54a39506b24df37b5e1403a007a40d43c5bd62 /src/storage.c
parenta341db54d82db0cfca948f0cf95b273430ee4675 (diff)
downloadsoikk-DB-1faec2ebd0c7151ff67390f7de7873f4b07cabb9.tar.xz
soikk-DB-1faec2ebd0c7151ff67390f7de7873f4b07cabb9.tar.zst
Updated README and fixed error on example images. Removed deleted dependencies. Fixed AVL tree bug.
Diffstat (limited to 'src/storage.c')
-rw-r--r--src/storage.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/storage.c b/src/storage.c
index bc5ab6b..dc1ad88 100644
--- a/src/storage.c
+++ b/src/storage.c
@@ -504,13 +504,17 @@ int storeAVLTree(tree root, FILE *fp){
return 0;
}
-static node *arrayToNodes(uint64_t *array, uint64_t i, uint64_t maxNodes){
- if(i >= maxNodes*2){
+static node *arrayToNodes(uint64_t *array, uint64_t pos, uint64_t maxNodes){
+ if(pos >= maxNodes*2){
return NULL;
}
- node *n = newNode(array[i+0], array[i+1]);
- n->left = arrayToNodes(array, (2*i + 1)*2, maxNodes);
- n->right = arrayToNodes(array, (2*i + 2)*2, maxNodes);
+ uint64_t h = array[pos+0], i = array[pos+1];
+ if(h == UINTMAX_MAX && i == UINTMAX_MAX){
+ return NULL;
+ }
+ node *n = newNode(h, i);
+ n->left = arrayToNodes(array, (2*pos + 1)*2, maxNodes);
+ n->right = arrayToNodes(array, (2*pos + 2)*2, maxNodes);
return n;
}