diff options
| -rw-r--r-- | CHANGELOG | 3 | ||||
| -rw-r--r-- | README.md | 2 | ||||
| -rw-r--r-- | include/db.h | 2 | ||||
| -rw-r--r-- | multimedia/example1.jpg | bin | 84673 -> 61040 bytes | |||
| -rw-r--r-- | multimedia/example2.jpg | bin | 105492 -> 74821 bytes | |||
| -rw-r--r-- | src/main.c | 16 | ||||
| -rw-r--r-- | src/storage.c | 14 |
7 files changed, 24 insertions, 13 deletions
@@ -1,3 +1,6 @@ +1660419119 (Sat Aug 13 2022 21:31:59 GMT+0200 (Central European Summer Time)) +Updated README and fixed error on example images. Removed deleted dependencies. Fixed AVL tree bug. + 1660415513 (Sat Aug 13 2022 20:31:53 GMT+0200 (Central European Summer Time)) Added README and images. Fixed random thing in changelog. @@ -6,4 +6,4 @@ Uses a mix of AVL trees and normal arrays to work with the data ## Example Loading and debugging|Showing and removing tags :-------------------------:|:-------------------------: - |  + |  diff --git a/include/db.h b/include/db.h index 2571d02..1777fc2 100644 --- a/include/db.h +++ b/include/db.h @@ -10,7 +10,6 @@ #include <stdarg.h> -#include "strnatcmp.h" #include "crc64.h" #include "str.h" @@ -18,6 +17,5 @@ #include "database.h" #include "repl.h" #include "parser.h" -#include "bm.h" #endif diff --git a/multimedia/example1.jpg b/multimedia/example1.jpg Binary files differindex 891556b..37e8c54 100644 --- a/multimedia/example1.jpg +++ b/multimedia/example1.jpg diff --git a/multimedia/example2.jpg b/multimedia/example2.jpg Binary files differindex 1521a80..f8e3f51 100644 --- a/multimedia/example2.jpg +++ b/multimedia/example2.jpg @@ -6,26 +6,32 @@ int main(){ inputBuffer *in = newInputBuffer(); - /*database *test = newDatabase("miDB"); + /*database *test = newDatabase("miDB"); addFileTag(test, "vaca.png", "naturalezas"); addFileTags(test, "terry-davis.jpg", 3, "holyC", "programmer", "very cool"); addFileTag(test, "vaca.png", "lovely"); addFileTags(test, "vaca.png", 3, "nature", "animal", "very cool"); addFileTag(test, "terry-davis.jpg", "based"); + + printDatabase(test); + + debugDatabase(test); storeDatabase(test, "db.db"); + + test = loadDatabase("db.db"); - printDatabase(db); + printDatabase(test); - debugDatabase(db); + debugDatabase(test); uint64_t *l, i; - searchFile(db, "terry-davis.jpg", 0, &l, &i); + searchFile(test, "terry-davis.jpg", 0, &l, &i); printf("Tags with file 'terry-davis.jpg':\n"); for(uint64_t j = 0; j < i; ++j){ - printf("\t%s\n", db->ltags->table[l[j]]); + printf("\t%s\n", test->ltags->table[l[j]]); }*/ 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; } |
