X-Git-Url: http://lists.indexdata.com/cgi-bin?a=blobdiff_plain;f=src%2Fsession.c;h=04807a87d7491cad6c3bebbd0b34f0f271b0aec8;hb=7f8731561e102ef0ae53737f5b8aba761b3cf7bf;hp=7e7a489640a549f815e30eb6392a3ea81eb4f620;hpb=6ff7cb53029747ad6ac60fde903630ea063b5218;p=pazpar2-moved-to-github.git diff --git a/src/session.c b/src/session.c index 7e7a489..04807a8 100644 --- a/src/session.c +++ b/src/session.c @@ -844,22 +844,25 @@ struct record_cluster *show_single_start(struct session *se, const char *id, struct record_cluster **prev_r, struct record_cluster **next_r) { - struct record_cluster *r; + struct record_cluster *r = 0; session_enter(se); - reclist_enter(se->reclist); *prev_r = 0; *next_r = 0; - while ((r = reclist_read_record(se->reclist))) + if (se->reclist) { - if (!strcmp(r->recid, id)) + reclist_enter(se->reclist); + while ((r = reclist_read_record(se->reclist))) { - *next_r = reclist_read_record(se->reclist); - break; + if (!strcmp(r->recid, id)) + { + *next_r = reclist_read_record(se->reclist); + break; + } + *prev_r = r; } - *prev_r = r; + reclist_leave(se->reclist); } - reclist_leave(se->reclist); if (!r) session_leave(se); return r; @@ -1269,10 +1272,10 @@ static int ingest_to_cluster(struct client *cl, const char *use_term_factor_str = session_setting_oneval(sdb, PZ_TERMLIST_TERM_FACTOR); int use_term_factor = 1; + // HACK: default to use term factor. int term_factor = 1; - if (use_term_factor_str) + if (use_term_factor_str && use_term_factor_str[0] != 0) use_term_factor = atoi(use_term_factor_str); - if (use_term_factor) { int maxrecs = client_get_maxrecs(cl); int hits = (int) client_get_hits(cl);