aboutsummaryrefslogtreecommitdiff
path: root/src/storage.c
diff options
context:
space:
mode:
authorSoikk2022-07-30 17:35:47 +0200
committerSoikk2022-07-30 17:35:47 +0200
commit0e95d2c61da7b7fbce76b0633313128b7440136e (patch)
tree0b48a36d254376848c4b590663f34e7bbefed5ae /src/storage.c
parent272d8a037822e870ffbdfca4bc1df9d973e4de06 (diff)
downloadsoikk-DB-0e95d2c61da7b7fbce76b0633313128b7440136e.tar.xz
soikk-DB-0e95d2c61da7b7fbce76b0633313128b7440136e.tar.zst
added htable delete function
Diffstat (limited to 'src/storage.c')
-rw-r--r--src/storage.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/storage.c b/src/storage.c
index 4ebbfdc..2be4d9e 100644
--- a/src/storage.c
+++ b/src/storage.c
@@ -142,6 +142,7 @@ int htableAdd(htable *ht, uint64_t h){
return 0;
}
+// We assume the table isnt ordered as of right now
uint64_t htableSearch(htable *ht, uint64_t h){
for(uint64_t i = 0; i < ht->size; ++i){
if(h == ht->table[i]){
@@ -151,6 +152,18 @@ uint64_t htableSearch(htable *ht, uint64_t h){
return -1;
}
+int htableDelete(htable *ht, uint64_t h){
+ uint64_t i = htableSearch(ht, h);
+ if(i == -1){
+ return -1;
+ }
+ ht->size--;
+ for(uint64_t j = i; j < ht->size-1; ++j){
+ ht->table[j] = ht->table[j+1];
+ }
+ return 0;
+}
+
mtable *newMtable(uint64_t size){
mtable *mt = malloc(sizeof(mtable));
size = (((uint64_t)size) < 0) ? 0 : size;