diff options
author | Robert Nagy <ronagy@icloud.com> | 2019-08-05 13:26:29 +0200 |
---|---|---|
committer | Rich Trott <rtrott@gmail.com> | 2019-08-09 11:11:53 -0700 |
commit | c15b4969e9f79cbe6d436a223390dbacb5329dfc (patch) | |
tree | 904f66c51c40f08b1a2bc526b0b2773e0d448e22 /lib/_stream_readable.js | |
parent | 8fdd6345175d7c7a02ede1ba7e70d6e79d167149 (diff) | |
download | android-node-v8-c15b4969e9f79cbe6d436a223390dbacb5329dfc.tar.gz android-node-v8-c15b4969e9f79cbe6d436a223390dbacb5329dfc.tar.bz2 android-node-v8-c15b4969e9f79cbe6d436a223390dbacb5329dfc.zip |
stream: encapsulate buffer-list
PR-URL: https://github.com/nodejs/node/pull/28974
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Diffstat (limited to 'lib/_stream_readable.js')
-rw-r--r-- | lib/_stream_readable.js | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/lib/_stream_readable.js b/lib/_stream_readable.js index 754e45da64..1830eea66d 100644 --- a/lib/_stream_readable.js +++ b/lib/_stream_readable.js @@ -337,16 +337,15 @@ Readable.prototype.setEncoding = function(enc) { // If setEncoding(null), decoder.encoding equals utf8 this._readableState.encoding = this._readableState.decoder.encoding; + const buffer = this._readableState.buffer; // Iterate over current buffer to convert already stored Buffers: - let p = this._readableState.buffer.head; let content = ''; - while (p !== null) { - content += decoder.write(p.data); - p = p.next; + for (const data of buffer) { + content += decoder.write(data); } - this._readableState.buffer.clear(); + buffer.clear(); if (content !== '') - this._readableState.buffer.push(content); + buffer.push(content); this._readableState.length = content.length; return this; }; @@ -380,7 +379,7 @@ function howMuchToRead(n, state) { if (Number.isNaN(n)) { // Only flow one buffer at a time if (state.flowing && state.length) - return state.buffer.head.data.length; + return state.buffer.first().length; else return state.length; } |