From d2ad8df9472c65931c649d312bf0ae46e1ceedd8 Mon Sep 17 00:00:00 2001 From: cinap_lenrek Date: Wed, 9 Nov 2016 19:44:38 +0100 Subject: kernel/qio: implement concatblock() with pullupblock() --- sys/src/9/port/qio.c | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) (limited to 'sys/src/9/port') diff --git a/sys/src/9/port/qio.c b/sys/src/9/port/qio.c index bd026e5a9..0632af9ac 100644 --- a/sys/src/9/port/qio.c +++ b/sys/src/9/port/qio.c @@ -140,29 +140,19 @@ blockalloclen(Block *bp) } /* - * copy the string of blocks into + * copy the string of blocks into * a single block and free the string */ Block* concatblock(Block *bp) { - Block *nb, *next; int len; if(bp->next == nil) return bp; - - nb = allocb(blocklen(bp)); - for(; bp != nil; bp = next) { - next = bp->next; - len = BLEN(bp); - memmove(nb->wp, bp->rp, len); - nb->wp += len; - freeb(bp); - } - concatblockcnt += BLEN(nb); - QDEBUG checkb(nb, "concatblock 1"); - return nb; + len = blocklen(bp); + concatblockcnt += len; + return pullupblock(bp, len); } /* -- cgit v1.2.3