1 |
< |
/* Copyright (c) 1991 Regents of the University of California */ |
1 |
> |
/* Copyright (c) 1992 Regents of the University of California */ |
2 |
|
|
3 |
|
#ifndef lint |
4 |
|
static char SCCSid[] = "$SunId$ LBL"; |
233 |
|
pagesz = amnt = getpagesize(); |
234 |
|
nrem = (int)sbrk(0); /* page align break */ |
235 |
|
nrem = pagesz - (nrem&(pagesz-1)); |
236 |
< |
bpos = sbrk(nrem); /* word aligned! */ |
236 |
> |
bpos = sbrk(nrem); |
237 |
|
if ((int)bpos == -1) |
238 |
|
return(NULL); |
239 |
|
#ifdef MSTATS |
240 |
|
b_nsbrked += nrem; |
241 |
|
#endif |
242 |
+ |
bpos += nrem & (BYTES_WORD-1); /* align pointer */ |
243 |
+ |
nrem &= ~(BYTES_WORD-1); |
244 |
|
} |
245 |
|
|
246 |
|
n = (n+(BYTES_WORD-1))&~(BYTES_WORD-1); /* word align rqst. */ |
381 |
|
register M_HEAD *mp; |
382 |
|
register int bucket; |
383 |
|
|
384 |
< |
if (p == NULL || p == DUMMYLOC) |
384 |
> |
if (p == NULL | p == DUMMYLOC) |
385 |
|
return(1); |
386 |
|
mp = (M_HEAD *)p - 1; |
387 |
|
if (mp->a.magic != MAGIC) /* sanity check */ |
388 |
|
return(0); |
389 |
|
bucket = mp->a.bucket; |
390 |
+ |
if (bucket < FIRSTBUCKET | bucket >= NBUCKETS) |
391 |
+ |
return(0); |
392 |
|
mp->next = free_list[bucket]; |
393 |
|
free_list[bucket] = mp; |
394 |
|
#ifdef MSTATS |