X-Git-Url: http://lists.indexdata.com/cgi-bin?a=blobdiff_plain;f=isam%2Fmemory.c;h=cd90dcbd88ed5eb1844967ee6787769c9af59b07;hb=fa9ad0cb4b1eade3de0853b91df04bd97c3845fa;hp=034f6d4eb751585987c5a21b0f6553e673c029a8;hpb=b357a706446dc6077ed92b8267db6bf5b1ba6d43;p=idzebra-moved-to-github.git diff --git a/isam/memory.c b/isam/memory.c index 034f6d4..cd90dcb 100644 --- a/isam/memory.c +++ b/isam/memory.c @@ -4,7 +4,11 @@ * Sebastian Hammer, Adam Dickmeiss * * $Log: memory.c,v $ - * Revision 1.6 1995-09-04 12:33:47 adam + * Revision 1.7 1995-12-06 09:59:46 quinn + * Fixed memory-consumption bug in memory.c + * Added more blocksizes to the default ISAM configuration. + * + * Revision 1.6 1995/09/04 12:33:47 adam * Various cleanup. YAZ util used instead. * * Revision 1.5 1994/09/28 16:58:33 quinn @@ -343,6 +347,12 @@ int is_m_read_record(is_mtable *tab, void *buf) { if (!mbuf->next) /* end of mblock */ { + if (tab->cur_mblock->state == IS_MBSTATE_CLEAN) + { + xfree_mbufs(tab->cur_mblock->data); + tab->cur_mblock->data = 0; + tab->cur_mblock->state = IS_MBSTATE_UNREAD; + } if (tab->cur_mblock->next) { tab->cur_mblock = tab->cur_mblock->next;