From 81d521999844f1dfa9c419463bbb8e355817062a Mon Sep 17 00:00:00 2001 From: kaashoek Date: Thu, 24 Aug 2006 19:24:36 +0000 Subject: bug in sbrk test malloc --- umalloc.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'umalloc.c') diff --git a/umalloc.c b/umalloc.c index c0fc4ca..11d816a 100644 --- a/umalloc.c +++ b/umalloc.c @@ -25,7 +25,9 @@ void free(void *ap) { Header *bp, *p; - + + printf(1, "free\n"); + bp = (Header *) ap - 1; for (p = freep; !(bp > p && bp < p->s.ptr); p = p->s.ptr) if (p >= p->s.ptr && (bp > p || bp < p->s.ptr)) @@ -51,6 +53,7 @@ morecore(uint nu) if (nu < PAGE) nu = PAGE; + printf(1, "call sbrk\n"); cp = sbrk(nu * sizeof(Header)); if (cp == (char *) -1) return 0; @@ -66,6 +69,8 @@ malloc(uint nbytes) Header *p, *prevp; uint nunits; + printf(1, "malloc %d\n", nbytes); + nunits = (nbytes + sizeof(Header) - 1)/sizeof(Header) + 1; if ((prevp = freep) == 0) { base.s.ptr = freep = prevp = &base; @@ -81,6 +86,7 @@ malloc(uint nbytes) p->s.size = nunits; } freep = prevp; + printf(1, "malloc returns: %d\n", (int) (p+1)); return (void *) (p + 1); } if (p == freep) -- cgit v1.2.3