summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian White <mscdex@mscdex.net>2019-08-06 00:57:46 -0400
committerBrian White <mscdex@mscdex.net>2019-08-09 18:32:00 -0400
commit53e467db24310a09772cd71fb6616239e950dd72 (patch)
treea571f67cb9a958131b65cea2b85886bc1c312e18
parentef01d7cb6648b8f475714e2f9893e573d7293c16 (diff)
downloadandroid-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.js5
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) {