X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;ds=sidebyside;f=rset%2Frsbool.c;h=b07a50e756f39907c164ceb332aa95830391f67f;hb=fcd23b68a84ac461cbea22271f91b7989a767201;hp=c71daa836139e420bb0d59ac7a06982e00c65614;hpb=609cbad0a65e5c684a70e8e01b36bead72e39e35;p=idzebra-moved-to-github.git diff --git a/rset/rsbool.c b/rset/rsbool.c index c71daa8..b07a50e 100644 --- a/rset/rsbool.c +++ b/rset/rsbool.c @@ -1,4 +1,4 @@ -/* $Id: rsbool.c,v 1.42 2004-08-25 13:21:43 adam Exp $ +/* $Id: rsbool.c,v 1.44 2004-08-26 11:11:59 heikki Exp $ Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004 Index Data Aps @@ -96,8 +96,8 @@ struct rset_bool_info { RSET rset_r; int (*cmp)(const void *p1, const void *p2); void (*log_item)(int logmask, const void *p, const char *txt); - struct rset_bool_rfd *rfd_list; - struct rset_bool_rfd *free_list; + struct rset_bool_rfd *rfd_list; /* RSFDs in use */ + struct rset_bool_rfd *free_list; /* RSFDs that are freed (for reuse) */ }; struct rset_bool_rfd { @@ -202,8 +202,11 @@ static RSFD r_open (RSET ct, int flag) rfd = info->free_list; if (rfd) info->free_list = rfd->next; - else + else { rfd = (struct rset_bool_rfd *) nmem_malloc(ct->nmem, sizeof(*rfd)); + rfd->buf_l = nmem_malloc(ct->nmem, info->key_size); + rfd->buf_r = nmem_malloc(ct->nmem, info->key_size); + } logf(LOG_DEBUG,"rsbool (%s) open [%p]", ct->control->desc, rfd); rfd->next = info->rfd_list; @@ -211,8 +214,6 @@ static RSFD r_open (RSET ct, int flag) rfd->info = info; rfd->hits=0; - rfd->buf_l = nmem_malloc(ct->nmem, info->key_size); - rfd->buf_r = nmem_malloc(ct->nmem, info->key_size); rfd->rfd_l = rset_open (info->rset_l, RSETF_READ); rfd->rfd_r = rset_open (info->rset_r, RSETF_READ); rfd->more_l = rset_read (info->rset_l, rfd->rfd_l, rfd->buf_l);