From a471f7dbaf182252a5916b8791e21c63c48ff060 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Fri, 30 May 2014 06:39:44 -0400 Subject: [PATCH] fix(pipe) on: memory lick --- lib/server/pipe.js | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/lib/server/pipe.js b/lib/server/pipe.js index e86e65ba..57bfbed4 100644 --- a/lib/server/pipe.js +++ b/lib/server/pipe.js @@ -24,7 +24,7 @@ function create(params) { var gzip, read, write, isFsWrite, p = params, - func = Util.exec.ret(p.callback), + func = p.callback, options = { bufferSize: 4 * 1024 }; @@ -71,11 +71,16 @@ } function on(event, emitter, callback) { - var listeners = emitter.listeners(event), - indexOf = listeners.indexOf(callback); + var isSet, + listeners = emitter.listeners(event), + callbackStr = '' + callback; - if (!~indexOf) - emitter.once(event, callback); + isSet = listeners.some(function(func) { + return '' + func === callbackStr; + }); + + if (!isSet) + emitter.on(event, callback); } /**