diff options
| -rw-r--r-- | sys/src/9/port/qio.c | 18 |
1 files changed, 4 insertions, 14 deletions
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); } /* |
