diff options
author | Robert Nagy <ronagy@icloud.com> | 2019-12-23 13:49:48 +0300 |
---|---|---|
committer | Ruben Bridgewater <ruben@bridgewater.de> | 2019-12-25 14:05:33 +0300 |
commit | cd6b00df3376d23643467b4c53e2e93bd9c28ce6 (patch) | |
tree | 4eb0e8e89a7bd976ac68670d3ee53b887a54ad2d /lib | |
parent | 5661466921d18e04bcac766b9aea0c0f158c952e (diff) |
stream: simplify isBuf
PR-URL: https://github.com/nodejs/node/pull/31067
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Denys Otrishko <shishugi@gmail.com>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/_stream_writable.js | 29 |
1 files changed, 9 insertions, 20 deletions
diff --git a/lib/_stream_writable.js b/lib/_stream_writable.js index d20dd2e6d32..63a912186ae 100644 --- a/lib/_stream_writable.js +++ b/lib/_stream_writable.js @@ -323,7 +323,7 @@ Writable.prototype.write = function(chunk, encoding, cb) { errorOrDestroy(this, err); } else if (isBuf || validChunk(this, state, chunk, cb)) { state.pendingcb++; - ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb); + ret = writeOrBuffer(this, state, chunk, encoding, cb); } return ret; @@ -367,15 +367,6 @@ ObjectDefineProperty(Writable.prototype, 'writableBuffer', { } }); -function decodeChunk(state, chunk, encoding) { - if (!state.objectMode && - state.decodeStrings !== false && - typeof chunk === 'string') { - chunk = Buffer.from(chunk, encoding); - } - return chunk; -} - ObjectDefineProperty(Writable.prototype, 'writableEnded', { // Making it explicit this property is not enumerable // because otherwise some prototype manipulation in @@ -409,14 +400,13 @@ ObjectDefineProperty(Writable.prototype, 'writableCorked', { // If we're already writing something, then just put this // in the queue, and wait our turn. Otherwise, call _write // If we return false, then we need a drain event, so set that flag. -function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) { - if (!isBuf) { - var newChunk = decodeChunk(state, chunk, encoding); - if (chunk !== newChunk) { - isBuf = true; - encoding = 'buffer'; - chunk = newChunk; - } +function writeOrBuffer(stream, state, chunk, encoding, cb) { + if (!state.objectMode && + state.decodeStrings !== false && + encoding !== 'buffer' && + typeof chunk === 'string') { + chunk = Buffer.from(chunk, encoding); + encoding = 'buffer'; } const len = state.objectMode ? 1 : chunk.length; @@ -432,7 +422,6 @@ function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) { state.lastBufferedRequest = { chunk, encoding, - isBuf, callback: cb, next: null }; @@ -561,7 +550,7 @@ function clearBuffer(stream, state) { var allBuffers = true; while (entry) { buffer[count] = entry; - if (!entry.isBuf) + if (entry.encoding !== 'buffer') allBuffers = false; entry = entry.next; count += 1; |