#include <yaz/yaz-util.h>
-#include "pazpar2.h"
+#include "ppmutex.h"
+#include "session.h"
#include "reclists.h"
#include "jenkins_hash.h"
res->num_records = 0;
res->mutex = 0;
- yaz_mutex_create(&res->mutex);
+ pazpar2_mutex_create(&res->mutex, "reclist");
return res;
}
void reclist_destroy(struct reclist *l)
{
- yaz_mutex_destroy(&l->mutex);
+ if (l)
+ yaz_mutex_destroy(&l->mutex);
}
int reclist_get_num_records(struct reclist *l)
}
// Insert a record. Return record cluster (newly formed or pre-existing)
-struct record_cluster *reclist_insert( struct reclist *l,
- struct conf_service *service,
- struct record *record,
- char *merge_key, int *total)
+struct record_cluster *reclist_insert(struct reclist *l,
+ struct conf_service *service,
+ struct record *record,
+ const char *merge_key, int *total)
{
unsigned int bucket;
struct reclist_bucket **p;
new->record = cluster;
new->hnext = 0;
cluster->records = record;
- cluster->merge_key = merge_key;
+ cluster->merge_key = nmem_strdup(l->nmem, merge_key);
cluster->relevance_score = 0;
cluster->term_frequency_vec = 0;
- cluster->recid = merge_key;
+ cluster->recid = nmem_strdup(l->nmem, merge_key);
(*total)++;
cluster->metadata =
nmem_malloc(l->nmem,