X-Git-Url: http://lists.indexdata.dk/cgi-bin?a=blobdiff_plain;f=src%2Fpazpar2.c;h=fa2d51fe9e6b57740da7b673d386873118d91b43;hb=0d3944c157baf45465880ccbd72c04945062832d;hp=15370549c43209ef04c218ab0f8acd897ac49619;hpb=c216c0a022ab832231757393d71b2d61ba646151;p=pazpar2-moved-to-github.git diff --git a/src/pazpar2.c b/src/pazpar2.c index 1537054..fa2d51f 100644 --- a/src/pazpar2.c +++ b/src/pazpar2.c @@ -1,4 +1,4 @@ -/* $Id: pazpar2.c,v 1.12 2007-01-04 07:38:36 adam Exp $ */; +/* $Id: pazpar2.c,v 1.16 2007-01-06 03:02:47 quinn Exp $ */; #include #include @@ -11,6 +11,7 @@ #include #include +#include #include #include #include @@ -198,6 +199,8 @@ static void send_present(IOCHAN i) int start = cl->records + 1; toget = global_parameters.chunk; + if (toget > global_parameters.toget - cl->records) + toget = global_parameters.toget - cl->records; if (toget > cl->hits - cl->records) toget = cl->hits - cl->records; @@ -430,6 +433,7 @@ static struct record *ingest_record(struct client *cl, Z_External *rec) if (!(mergekey = xmlGetProp(root, "mergekey"))) { yaz_log(YLOG_WARN, "No mergekey found in record"); + xmlFreeDoc(xdoc); return 0; } @@ -445,6 +449,12 @@ static struct record *ingest_record(struct client *cl, Z_External *rec) res->merge_key = normalize_mergekey(mergekey_norm); head = reclist_insert(se->reclist, res); + if (!head) + { + /* no room for record */ + xmlFreeDoc(xdoc); + return 0; + } relevance_newrec(se->relevance, head); for (n = root->children; n; n = n->next) @@ -465,7 +475,7 @@ static struct record *ingest_record(struct client *cl, Z_External *rec) } else if (!strcmp(n->name, "metadata")) { - xmlChar *type = xmlGetProp(n, "type"), *value; + xmlChar *type = xmlGetProp(n, "type"); if (type && !strcmp(type, "title")) { xmlChar *value = xmlNodeListGetString(xdoc, n->children, 0); @@ -1159,9 +1169,7 @@ struct termlist_score **termlist(struct session *s, const char *name, int *num) return 0; } -#ifdef REPORT_NMEM -// conditional compilation by SH: This lead to a warning with currently installed -// YAZ header files on us1 +#ifdef MISSING_HEADERS void report_nmem_stats(void) { size_t in_use, is_free;