X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Freclists.c;h=a621d89e1f4d429ac554da4fd72b0bd05b7584e5;hb=944037cb95ef7a0eed6502fdea7541f2431b55cc;hp=284d19c39beef11b28160210a22b917e82fb788a;hpb=5e525d47d446d0c02985f007ae0fb0905444e305;p=pazpar2-moved-to-github.git diff --git a/src/reclists.c b/src/reclists.c index 284d19c..a621d89 100644 --- a/src/reclists.c +++ b/src/reclists.c @@ -25,7 +25,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA #include -#include "pazpar2.h" +#include "session.h" #include "reclists.h" #include "jenkins_hash.h" @@ -255,7 +255,8 @@ struct reclist *reclist_create(NMEM nmem) 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) @@ -266,10 +267,10 @@ 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; @@ -307,10 +308,10 @@ struct record_cluster *reclist_insert( struct reclist *l, 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,