Fixed bug #447: Zebra aborts with "isamb: Inconsistent register".
[idzebra-moved-to-github.git] / index / kinput.c
index 748ced9..9c21b9e 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: kinput.c,v 1.67 2005-09-16 09:58:39 adam Exp $
+/* $Id: kinput.c,v 1.69 2005-11-10 11:25:13 adam Exp $
    Copyright (C) 1995-2005
    Index Data ApS
 
@@ -397,26 +397,34 @@ static int heap_read_one (struct heap_info *hi, char *name, char *key)
 #define PR_KEY_LOW 0
 #define PR_KEY_TOP 0
 
+#if 1
 static void pkey(const char *b, int mode)
 {
     key_logdump_txt(YLOG_LOG, b, mode ? "i" : "d");
 }
+#endif
 
 #if 1
 /* for debugging only */
-static void print_dict_item (ZebraHandle zh, const char *s)
+static void print_dict_item(ZebraHandle zh, const char *s)
 {
     char dst[IT_MAX_WORD+1];
     int ord;
-    int len = key_SU_decode (&ord, (const unsigned char *) s);
+    int len = key_SU_decode(&ord, (const unsigned char *) s);
     int index_type;
     const char *db = 0;
 
-    zebraExplain_lookup_ord (zh->reg->zei,
+    if (!zh)
+        yaz_log(YLOG_LOG, "ord=%d", ord);
+    else
+    {
+        zebraExplain_lookup_ord (zh->reg->zei,
                             ord, &index_type, &db, 0, 0);
 
-    zebra_term_untrans(zh, index_type, dst, s + len);
-    yaz_log (YLOG_LOG, "%s", dst);
+        zebra_term_untrans(zh, index_type, dst, s + len);
+
+        yaz_log(YLOG_LOG, "ord=%d term=%s", ord, dst);
+    }
 }
 #endif
 
@@ -454,8 +462,8 @@ int heap_cread_item2(void *vp, char **dst, int *insertMode)
            p->look_level++;
        }
        memcpy (*dst, p->key_1, p->sz_1);
-#if PR_KEY_TOP
-       yaz_log(YLOG_LOG, "DUP!");
+#if 1
+       yaz_log(YLOG_LOG, "DUP level=%d", p->look_level);
        pkey(*dst, *insertMode);
 #endif
        (*dst) += p->sz_1;
@@ -529,7 +537,7 @@ int heap_cread_item2(void *vp, char **dst, int *insertMode)
     }
     p->look_level = level;
     memcpy (*dst, p->key_1, p->sz_1);
-#if PR_KEY_TOP
+#if 0
     pkey(*dst, *insertMode);
 #endif
     (*dst) += p->sz_1;
@@ -656,7 +664,7 @@ int heap_inpb(struct heap_cread_info *hci, struct heap_info *hi)
         hi->no_diffs++;
 
 #if 0
-        print_dict_item (hi->zh, hci->cur_name);
+        print_dict_item(hi->zh, hci->cur_name);
 #endif
         if ((dict_info = dict_lookup (hi->reg->dict, hci->cur_name)))
         {