X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=ucw%2Ffb-pool.c;h=17a9c6dc5ed7de6a96150ebd3a2cce830bff2e87;hb=0f73a9b90ec53017512c34f7dab56be3a50d87b1;hp=b55f09038da2d7417de285e5f41bf3694211b73a;hpb=a4fe009d3366b0a3e119713b0ecc7fc0070efdfa;p=libucw.git diff --git a/ucw/fb-pool.c b/ucw/fb-pool.c index b55f0903..17a9c6dc 100644 --- a/ucw/fb-pool.c +++ b/ucw/fb-pool.c @@ -19,12 +19,11 @@ static void fbpool_spout(struct fastbuf *b) { - if (b->bptr >= b->bufend) + if (b->bptr == b->bufend) { uns len = b->bufend - b->buffer; - b->buffer = mp_expand(FB_POOL(b)->mp); + b->bstop = b->buffer = mp_expand(FB_POOL(b)->mp); b->bufend = b->buffer + mp_avail(FB_POOL(b)->mp); - b->bstop = b->buffer; b->bptr = b->buffer + len; } } @@ -40,7 +39,7 @@ fbpool_start(struct fbpool *b, struct mempool *mp, uns init_size) void * fbpool_end(struct fbpool *b) { - return mp_end(b->mp, b->fb.bptr); + return mp_end(b->mp, b->fb.bptr); } void @@ -60,7 +59,7 @@ int main(void) struct fbpool fb; byte *p; uns l; - + mp = mp_new(64); fbpool_init(&fb); fbpool_start(&fb, mp, 16); @@ -74,7 +73,7 @@ int main(void) if (memcmp(p + i * 7, "", 7)) ASSERT(0); mp_delete(mp); - + return 0; }