27 |
|
#ifndef BSD |
28 |
|
#define bcopy(s,d,n) (void)memcpy(d,s,n) |
29 |
|
#define bzero(d,n) (void)memset(d,0,n) |
30 |
– |
extern char *memcpy(), *memset(); |
30 |
|
#endif |
31 |
|
|
32 |
|
#ifdef MSTATS |
159 |
|
|
160 |
|
for ( ; ; ) { |
161 |
|
/* compact free lists */ |
162 |
< |
compactfree(); |
162 |
> |
while (compactfree()) |
163 |
> |
; |
164 |
|
/* find largest block */ |
165 |
|
tab = mtab(&cptab); tablen = mtablen(&cptab); |
166 |
|
big = tab; |
303 |
|
register int bucket; |
304 |
|
register unsigned bsiz; |
305 |
|
|
306 |
< |
if (n < 1<<FIRSTBUCKET) |
306 |
> |
if (n < 1<<FIRSTBUCKET || p == NULL) |
307 |
|
return; |
308 |
|
#ifdef MSTATS |
309 |
|
b_nfreed += n; |