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