diff options
| author | Soikk | 2022-07-30 17:35:47 +0200 |
|---|---|---|
| committer | Soikk | 2022-07-30 17:35:47 +0200 |
| commit | 0e95d2c61da7b7fbce76b0633313128b7440136e (patch) | |
| tree | 0b48a36d254376848c4b590663f34e7bbefed5ae /src/storage.c | |
| parent | 272d8a037822e870ffbdfca4bc1df9d973e4de06 (diff) | |
| download | soikk-DB-0e95d2c61da7b7fbce76b0633313128b7440136e.tar.xz soikk-DB-0e95d2c61da7b7fbce76b0633313128b7440136e.tar.zst | |
added htable delete function
Diffstat (limited to 'src/storage.c')
| -rw-r--r-- | src/storage.c | 13 |
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; |
