Fix duplicate management.
authorFlorent Bruneau <florent.bruneau@polytechnique.org>
Thu, 11 Sep 2008 12:26:49 +0000 (14:26 +0200)
committerFlorent Bruneau <florent.bruneau@polytechnique.org>
Thu, 11 Sep 2008 12:26:49 +0000 (14:26 +0200)
Signed-off-by: Florent Bruneau <florent.bruneau@polytechnique.org>
common/trie.c
common/tst-trie.c

index 947a817..3ac0c69 100644 (file)
@@ -258,6 +258,9 @@ static inline void trie_compile_aux(trie_t *trie, int id,
                 current = trie->keys[i][offset];
             }
         }
+        if (fork_pos == 0 && current == '\0') {
+            return;
+        }
     }
     forks[fork_pos] = last_key;
 
index 4202261..77fd208 100644 (file)
@@ -104,8 +104,6 @@ static trie_t *create_trie_from_file(const char *file)
     }
     munmap((void*)map, st.st_size);
     trie_compile(db, false);
-    printf("OK\n");
-    sleep(10);
     return db;
 }
 
@@ -140,6 +138,7 @@ int main(int argc, char *argv[])
     ASSERT_FALSE("abcde");
     ASSERT_FALSE("coucou chez vous tous");
     ASSERT_TRUE("abcde123456789");
+    ASSERT_TRUE("abcde123456789");
     ASSERT_TRUE("abcde123654789");
     ASSERT_TRUE("abcdefghi");
     ASSERT_TRUE("coucou");
@@ -152,7 +151,7 @@ int main(int argc, char *argv[])
      */
     if (argc > 1) {
         trie = create_trie_from_file(argv[1]);
-        trie_inspect(trie);
+//        trie_inspect(trie);
         trie_delete(&trie);
     }
     return 0;