From b4fba5fe8ee5fe3a43405fbd8838feab5f259bc8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felix=20Geisend=C3=B6rfer?= Date: Thu, 4 Mar 2010 14:25:59 +0100 Subject: [PATCH] Simplify buffering There is no way more than one read event would be buffered. --- lib/fs.js | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/lib/fs.js b/lib/fs.js index ac13b2670f7..de1bf94ce32 100644 --- a/lib/fs.js +++ b/lib/fs.js @@ -395,7 +395,7 @@ var FileReadStream = exports.FileReadStream = function(path, options) { var self = this, - buffer = []; + buffer = null; function read() { if (!self.readable || self.paused) { @@ -411,7 +411,7 @@ var FileReadStream = exports.FileReadStream = function(path, options) { // do not emit events if the stream is paused if (self.paused) { - buffer.push(data); + buffer = data; return; } @@ -450,15 +450,9 @@ var FileReadStream = exports.FileReadStream = function(path, options) { this.resume = function() { this.paused = false; - // emit any buffered read events before continuing - var data; - while (!this.paused) { - data = buffer.shift(); - if (data === undefined) { - break; - } - - self.emit('data', data); + if (buffer !== null) { + self.emit('data', buffer); + buffer = null; } read();