comparison src/memfile.c @ 1230:cab25717c6a6 v7.1b.002

updated for version 7.1b-002
author vimboss
date Fri, 11 May 2007 18:15:45 +0000
parents a49d06539452
children ebe059f69b9e
comparison
equal deleted inserted replaced
1229:198a695ca8e7 1230:cab25717c6a6
188 mfp->mf_blocknr_max = (blocknr_T)((size + mfp->mf_page_size - 1) 188 mfp->mf_blocknr_max = (blocknr_T)((size + mfp->mf_page_size - 1)
189 / mfp->mf_page_size); 189 / mfp->mf_page_size);
190 mfp->mf_blocknr_min = -1; 190 mfp->mf_blocknr_min = -1;
191 mfp->mf_neg_count = 0; 191 mfp->mf_neg_count = 0;
192 mfp->mf_infile_count = mfp->mf_blocknr_max; 192 mfp->mf_infile_count = mfp->mf_blocknr_max;
193 mfp->mf_used_count_max = p_mm * 1024 / mfp->mf_page_size; 193
194 /*
195 * Compute maximum number of pages ('maxmem' is in Kbyte):
196 * 'mammem' * 1Kbyte / page-size-in-bytes.
197 * Avoid overflow by first reducing page size as much as possible.
198 */
199 {
200 int shift = 10;
201 unsigned page_size = mfp->mf_page_size;
202
203 while (shift > 0 && (page_size & 1) == 0)
204 {
205 page_size = page_size >> 1;
206 --shift;
207 }
208 mfp->mf_used_count_max = (p_mm << shift) / page_size;
209 if (mfp->mf_used_count_max < 10)
210 mfp->mf_used_count_max = 10;
211 }
194 212
195 return mfp; 213 return mfp;
196 } 214 }
197 215
198 /* 216 /*