1 /*
2 * reimplementation of Daniel Bernstein's unix library.
3 * placed in the public domain by Uwe Ohse, uwe@ohse.de.
4 */
5 #include "alloc.h"
6 #include "gen_alloci.h"
7 int
gen_alloc_ready(char ** bptr,unsigned int bsize,unsigned int * len,unsigned int * a,unsigned int newa)8 gen_alloc_ready(char **bptr, unsigned int bsize, unsigned int *len,
9 unsigned int *a, unsigned int newa)
10 {
11 if (!*bptr) {
12 *bptr=alloc(bsize * newa);
13 if (!*bptr)
14 return 0;
15 *a=newa;
16 *len=0;
17 return 1;
18 }
19 if (newa > *a) {
20 if (newa/8 < 16)
21 newa+=16;
22 else
23 newa+=newa/8;
24 if (!alloc_re(bptr,*a * bsize, newa *bsize))
25 return 0;
26 *a=newa;
27 }
28 return 1;
29 }
30