From 7835d6b3e61c2d0890e1162fbcb9b1a347768bd2 Mon Sep 17 00:00:00 2001 From: "Fabiano C. Botelho" Date: Fri, 12 Jun 2009 03:07:54 -0300 Subject: [PATCH] checking the bug reported by Ayat Dawood. It was fixed using his suggestion (if((bdz->r%2)==0) bdz->r+=1; // The new line) --- examples/vector_adapter_ex1.c | 57 ++++++++++++++++++----------------- 1 file changed, 29 insertions(+), 28 deletions(-) diff --git a/examples/vector_adapter_ex1.c b/examples/vector_adapter_ex1.c index f7855f7..85769a5 100755 --- a/examples/vector_adapter_ex1.c +++ b/examples/vector_adapter_ex1.c @@ -2,39 +2,40 @@ #include // Create minimal perfect hash function from in-memory vector int main(int argc, char **argv) -{ - // Creating a filled vector - unsigned int i = 0; - const char *vector[] = {"aaaaaaaaaa", "bbbbbbbbbb", "cccccccccc", "dddddddddd", "eeeeeeeeee", - "ffffffffff", "gggggggggg", "hhhhhhhhhh", "iiiiiiiiii", "jjjjjjjjjj"}; - unsigned int nkeys = 10; - FILE* mphf_fd = fopen("temp.mph", "w"); - // Source of keys - cmph_io_adapter_t *source = cmph_io_vector_adapter((char **)vector, nkeys); +{ - //Create minimal perfect hash function using the default (chm) algorithm. - cmph_config_t *config = cmph_config_new(source); - cmph_config_set_algo(config, CMPH_BRZ); - cmph_config_set_mphf_fd(config, mphf_fd); - cmph_t *hash = cmph_new(config); - cmph_config_destroy(config); + // Creating a filled vector + unsigned int i = 0; + const char *vector[] = {"aaaaaaaaaa", "bbbbbbbbbb", "cccccccccc", "dddddddddd", "eeeeeeeeee", + "ffffffffff", "gggggggggg", "hhhhhhhhhh", "iiiiiiiiii", "jjjjjjjjjj"}; + unsigned int nkeys = 10; + FILE* mphf_fd = fopen("temp.mph", "w"); + // Source of keys + cmph_io_adapter_t *source = cmph_io_vector_adapter((char **)vector, nkeys); + + //Create minimal perfect hash function using the default (chm) algorithm. + cmph_config_t *config = cmph_config_new(source); + cmph_config_set_algo(config, CMPH_BRZ); + cmph_config_set_mphf_fd(config, mphf_fd); + cmph_t *hash = cmph_new(config); + cmph_config_destroy(config); cmph_dump(hash, mphf_fd); - cmph_destroy(hash); - fclose(mphf_fd); - - //Find key + cmph_destroy(hash); + fclose(mphf_fd); + + //Find key mphf_fd = fopen("temp.mph", "r"); hash = cmph_load(mphf_fd); while (i < nkeys) { - const char *key = vector[i]; - unsigned int id = cmph_search(hash, key, (cmph_uint32)strlen(key)); - fprintf(stderr, "key:%s -- hash:%u\n", key, id); - i++; + const char *key = vector[i]; + unsigned int id = cmph_search(hash, key, (cmph_uint32)strlen(key)); + fprintf(stderr, "key:%s -- hash:%u\n", key, id); + i++; } - - //Destroy hash - cmph_destroy(hash); - cmph_io_vector_adapter_destroy(source); + + //Destroy hash + cmph_destroy(hash); + cmph_io_vector_adapter_destroy(source); fclose(mphf_fd); - return 0; + return 0; }