~kris/9p

9hist

ea6ad2e99404eaed5f2545be9f69c18f1f84fde8 — David du Colombier 29 years ago f1c7645
Plan 9 from Bell Labs 1996-11-20
1 files changed, 9 insertions(+), 12 deletions(-)

M port/alloc.c
M port/alloc.c => port/alloc.c +9 -12
@@ 254,9 254,8 @@ xhole(ulong addr, ulong size)
void*
mallocz(ulong size, int zero)
{
	ulong next;
	int pow, n;
	Bucket *bp, *nbp;
	Bucket *bp, **l;

	for(pow = 3; pow <= Maxpow; pow++)
		if(size <= (1<<pow))


@@ 293,18 292,16 @@ good:
		if(bp == nil)
			return nil;

		next = (ulong)bp+size;
		nbp = (Bucket*)next;
		ilock(&arena);
		arena.btab[pow] = nbp;
		arena.nbuck[pow] += n;
		for(n -= 2; n; n--) {
			next = (ulong)nbp+size;
			nbp->next = (Bucket*)next;
			nbp->size = pow;
			nbp = nbp->next;
		l = &arena.btab[pow];
		/* add all but the last to the free list */
		while(--n){
			bp->size = pow;
			bp->next = *l;
			*l = bp;
			bp = (Bucket*)((ulong)bp+size);
		}
		nbp->size = pow;
		iunlock(&arena);
	}
	else {


@@ 370,7 367,7 @@ free(void *ptr)

	bp = (Bucket*)((ulong)ptr - bdatoff);
	if(bp->magic != Magic2n)
		panic("free %lux %lux", bp->magic, bp->pc);
		panic("free %lux %lux %lux", bp->magic, bp->pc, getcallerpc(ptr));

	bp->magic = 0;
	ilock(&arena);