stream: Use class for write buffer entries
This commit is contained in:
parent
426b4c6258
commit
312289b791
@ -32,6 +32,12 @@ var Stream = require('stream');
|
||||
|
||||
util.inherits(Writable, Stream);
|
||||
|
||||
function WriteReq(chunk, encoding, cb) {
|
||||
this.chunk = chunk;
|
||||
this.encoding = encoding;
|
||||
this.callback = cb;
|
||||
}
|
||||
|
||||
function WritableState(options, stream) {
|
||||
options = options || {};
|
||||
|
||||
@ -190,7 +196,7 @@ function writeOrBuffer(stream, state, chunk, encoding, cb) {
|
||||
state.needDrain = !ret;
|
||||
|
||||
if (state.writing)
|
||||
state.buffer.push([chunk, encoding, cb]);
|
||||
state.buffer.push(new WriteReq(chunk, encoding, cb));
|
||||
else
|
||||
doWrite(stream, state, len, chunk, encoding, cb);
|
||||
|
||||
@ -268,9 +274,9 @@ function clearBuffer(stream, state) {
|
||||
|
||||
for (var c = 0; c < state.buffer.length; c++) {
|
||||
var entry = state.buffer[c];
|
||||
var chunk = entry[0];
|
||||
var encoding = entry[1];
|
||||
var cb = entry[2];
|
||||
var chunk = entry.chunk;
|
||||
var encoding = entry.encoding;
|
||||
var cb = entry.callback;
|
||||
var len = state.objectMode ? 1 : chunk.length;
|
||||
|
||||
doWrite(stream, state, len, chunk, encoding, cb);
|
||||
|
@ -82,7 +82,7 @@ test('writable side consumption', function(t) {
|
||||
t.equal(transformed, 10);
|
||||
t.equal(tx._transformState.writechunk.length, 5);
|
||||
t.same(tx._writableState.buffer.map(function(c) {
|
||||
return c[0].length;
|
||||
return c.chunk.length;
|
||||
}), [6, 7, 8, 9, 10]);
|
||||
|
||||
t.end();
|
||||
|
Loading…
x
Reference in New Issue
Block a user