function reclist_insert() does not change mergekey, so parameter signature changed...
[pazpar2-moved-to-github.git] / src / reclists.c
index e0bf96d..35aaede 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: reclists.c,v 1.10 2007-04-16 13:57:25 marc Exp $
+/* $Id: reclists.c,v 1.13 2007-04-25 08:07:47 marc Exp $
    Copyright (c) 2006-2007, Index Data.
 
 This file is part of Pazpar2.
@@ -204,20 +204,23 @@ struct reclist *reclist_create(NMEM nmem, int numrecs)
 }
 
 // Insert a record. Return record cluster (newly formed or pre-existing)
-struct record_cluster *reclist_insert( struct conf_service *service,
-                                       struct reclist *l, 
+struct record_cluster *reclist_insert( struct reclist *l,
+                                       struct conf_service *service, 
                                        struct record  *record,
-                                       char *merge_key, int *total)
+                                       const char *merge_key, int *total)
 {
     unsigned int bucket;
     struct reclist_bucket **p;
     struct record_cluster *cluster = 0;
     
     assert(service);
-    assert(service->num_metadata);
-    assert(service->num_sortkeys);
+    assert(l);
+    assert(record);
+    assert(merge_key);
+    assert(total);
 
     bucket = hash((unsigned char*) merge_key) & l->hashmask;
+
     for (p = &l->hashtable[bucket]; *p; p = &(*p)->next)
     {
         // We found a matching record. Merge them
@@ -241,7 +244,7 @@ struct record_cluster *reclist_insert( struct conf_service *service,
         new->record = newc;
         new->next = 0;
         newc->records = record;
-        newc->merge_key = merge_key;
+        newc->merge_key = (char *) merge_key;
         newc->relevance = 0;
         newc->term_frequency_vec = 0;
         newc->recid = (*total)++;