pool: maintain Pool.curalloc for poolallocalign() and blockgrow()
blockgrow() and poolallocalign() change the size of allocated blocks which needs to be accounted for in Pool.curalloc.
This commit is contained in:
parent
244d5ab76b
commit
098884981d
|
@ -627,9 +627,11 @@ blockgrow(Pool *p, Bhdr *b, ulong nsize)
|
||||||
ulong dsize;
|
ulong dsize;
|
||||||
|
|
||||||
a = (Alloc*)b;
|
a = (Alloc*)b;
|
||||||
|
p->curalloc -= a->size;
|
||||||
dsize = getdsize(a);
|
dsize = getdsize(a);
|
||||||
blocksetsize(a, nsize);
|
blocksetsize(a, nsize);
|
||||||
trim(p, a, dsize);
|
trim(p, a, dsize);
|
||||||
|
p->curalloc += a->size;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1119,6 +1121,7 @@ poolallocalignl(Pool *p, ulong dsize, ulong align, long offset, ulong span)
|
||||||
* or mark it as unavailable.
|
* or mark it as unavailable.
|
||||||
*/
|
*/
|
||||||
b = _D2B(v);
|
b = _D2B(v);
|
||||||
|
p->curalloc -= b->size;
|
||||||
b = freefromfront(p, b, skip);
|
b = freefromfront(p, b, skip);
|
||||||
v = _B2D(b);
|
v = _B2D(b);
|
||||||
skip = c - (char*)v;
|
skip = c - (char*)v;
|
||||||
|
@ -1128,6 +1131,7 @@ poolallocalignl(Pool *p, ulong dsize, ulong align, long offset, ulong span)
|
||||||
*u++ = ALIGN_MAGIC;
|
*u++ = ALIGN_MAGIC;
|
||||||
}
|
}
|
||||||
trim(p, b, skip+dsize);
|
trim(p, b, skip+dsize);
|
||||||
|
p->curalloc += b->size;
|
||||||
assert(D2B(p, c) == b);
|
assert(D2B(p, c) == b);
|
||||||
antagonism {
|
antagonism {
|
||||||
memset(c, 0xDD, dsize);
|
memset(c, 0xDD, dsize);
|
||||||
|
|
Loading…
Reference in a new issue