Contact address for Zebra is zebra-help@indexdata.dk
[idzebra-moved-to-github.git] / dict / insert.c
index 33392b9..bdc1857 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: insert.c,v 1.27 2006-08-14 10:40:09 adam Exp $
+/* $Id: insert.c,v 1.29 2006-11-14 12:04:38 adam Exp $
    Copyright (C) 1995-2006
    Index Data ApS
 
@@ -105,8 +105,7 @@ static int split_page (Dict dict, Dict_ptr ptr, void *p)
             }
         }
     }
-    if (best_no < 0) /* we didn't find any tail string entry at all! */
-        return -1;
+    assert(best_no >= 0); /* we didn't find any tail string entry at all! */
 
     j = best_indxp - (short*) p;
     subptr = new_page (dict, ptr, &subp);
@@ -344,7 +343,7 @@ static int dict_ins (Dict dict, const Dict_char *str,
                         if (split_page (dict, ptr, p)) 
                         {
                             yaz_log (YLOG_FATAL, "Unable to split page %d\n", ptr);
-                            abort ();
+                            assert(0);
                         }
                         return dict_ins (dict, str-1, ptr, userlen, userinfo);
                     }
@@ -437,13 +436,14 @@ static int dict_ins (Dict dict, const Dict_char *str,
 
 int dict_insert (Dict dict, const char *str, int userlen, void *userinfo)
 {
+    if (!dict->rw)
+        return -1;
     if (!dict->head.root)
     {
        void *p;
-       if (dict->rw)
-           dict->head.root = new_page (dict, 0, &p);
+        dict->head.root = new_page (dict, 0, &p);
        if (!dict->head.root)
-           return 0;
+           return -1;
     }
     return dict_ins (dict, (const Dict_char *) str, dict->head.root,
                     userlen, userinfo);