diff options
author | Brian White <mscdex@mscdex.net> | 2019-08-06 00:57:46 -0400 |
---|---|---|
committer | Brian White <mscdex@mscdex.net> | 2019-08-09 18:32:00 -0400 |
commit | 53e467db24310a09772cd71fb6616239e950dd72 (patch) | |
tree | a571f67cb9a958131b65cea2b85886bc1c312e18 | |
parent | ef01d7cb6648b8f475714e2f9893e573d7293c16 (diff) | |
download | android-node-v8-53e467db24310a09772cd71fb6616239e950dd72.tar.gz android-node-v8-53e467db24310a09772cd71fb6616239e950dd72.tar.bz2 android-node-v8-53e467db24310a09772cd71fb6616239e950dd72.zip |
stream: improve read() performance more
PR-URL: https://github.com/nodejs/node/pull/28989
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Michaƫl Zasso <targos@protonmail.com>
Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
-rw-r--r-- | lib/internal/streams/buffer_list.js | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/internal/streams/buffer_list.js b/lib/internal/streams/buffer_list.js index 9dbf6f6769..36777ed82d 100644 --- a/lib/internal/streams/buffer_list.js +++ b/lib/internal/streams/buffer_list.js @@ -139,7 +139,10 @@ module.exports = class BufferList { while (p = p.next) { const buf = p.data; const nb = (n > buf.length ? buf.length : n); - buf.copy(ret, ret.length - n, 0, nb); + if (nb === buf.length) + ret.set(buf, ret.length - n); + else + ret.set(new Uint8Array(buf.buffer, buf.byteOffset, nb), ret.length - n); n -= nb; if (n === 0) { if (nb === buf.length) { |