X-Git-Url: http://lists.indexdata.com/cgi-bin?a=blobdiff_plain;f=bfile%2Fcfile.c;h=0b829c5e69b5a98d0a28a8fed16c39e7d31835b2;hb=327142accc3f6115431fc838dfc45291259253d7;hp=91fa2ad723207474829ebf281259c13d10ab87c4;hpb=2771f5feddda09bed04d609683bf95df053924a4;p=idzebra-moved-to-github.git diff --git a/bfile/cfile.c b/bfile/cfile.c index 91fa2ad..0b829c5 100644 --- a/bfile/cfile.c +++ b/bfile/cfile.c @@ -4,7 +4,13 @@ * Sebastian Hammer, Adam Dickmeiss * * $Log: cfile.c,v $ - * Revision 1.12 1996-04-09 06:47:28 adam + * Revision 1.14 1996-04-12 07:01:55 adam + * Yet another bug fix (next_block was initialized to 0; now set to 1). + * + * Revision 1.13 1996/04/09 14:48:49 adam + * Bug fix: offset calculation when using flat files was completely broken. + * + * Revision 1.12 1996/04/09 06:47:28 adam * Function scan_areadef doesn't use sscanf (%n fails on this Linux). * * Revision 1.11 1996/03/26 15:59:05 adam @@ -273,7 +279,7 @@ static struct CFile_hash_bucket *new_bucket (CFile cf, int *block_no, int hno) static int cf_lookup_flat (CFile cf, int no) { int hno = (no*sizeof(int))/HASH_BSIZE; - int off = (no*sizeof(int)) - hno*sizeof(HASH_BSIZE); + int off = (no*sizeof(int)) - hno*HASH_BSIZE; int vno = 0; mf_read (cf->hash_mf, hno+cf->head.next_bucket, off, sizeof(int), &vno); @@ -316,11 +322,12 @@ static int cf_lookup_hash (CFile cf, int no) static void cf_write_flat (CFile cf, int no, int vno) { int hno = (no*sizeof(int))/HASH_BSIZE; - int off = (no*sizeof(int)) - hno*sizeof(HASH_BSIZE); + int off = (no*sizeof(int)) - hno*HASH_BSIZE; hno += cf->head.next_bucket; if (hno >= cf->head.flat_bucket) cf->head.flat_bucket = hno+1; + cf->dirty = 1; mf_write (cf->hash_mf, hno, off, sizeof(int), &vno); }