fs: reduced duplicate code in fs.write()
authorronkorving <rkorving@wizcorp.jp>
Fri, 18 Sep 2015 08:36:57 +0000 (17:36 +0900)
committerJames M Snell <jasnell@gmail.com>
Thu, 29 Oct 2015 15:38:42 +0000 (08:38 -0700)
PR-URL: https://github.com/nodejs/node/pull/2947
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
lib/fs.js

index fef4f7ba501b50b9cd62ef47b0015f2f60eb283f..cd39cc9d83fcc13b119bce789c00df96afdeab59 100644 (file)
--- a/lib/fs.js
+++ b/lib/fs.js
@@ -614,17 +614,14 @@ fs.readSync = function(fd, buffer, offset, length, position) {
 // OR
 //  fs.write(fd, string[, position[, encoding]], callback);
 fs.write = function(fd, buffer, offset, length, position, callback) {
-  function strWrapper(err, written) {
+  function wrapper(err, written) {
     // Retain a reference to buffer so that it can't be GC'ed too soon.
     callback(err, written || 0, buffer);
   }
 
-  function bufWrapper(err, written) {
-    // retain reference to string in case it's external
-    callback(err, written || 0, buffer);
-  }
-
   var req = new FSReqWrap();
+  req.oncomplete = wrapper;
+
   if (buffer instanceof Buffer) {
     // if no position is passed then assume null
     if (typeof position === 'function') {
@@ -632,7 +629,6 @@ fs.write = function(fd, buffer, offset, length, position, callback) {
       position = null;
     }
     callback = maybeCallback(callback);
-    req.oncomplete = strWrapper;
     return binding.writeBuffer(fd, buffer, offset, length, position, req);
   }
 
@@ -648,7 +644,6 @@ fs.write = function(fd, buffer, offset, length, position, callback) {
     length = 'utf8';
   }
   callback = maybeCallback(position);
-  req.oncomplete = bufWrapper;
   return binding.writeString(fd, buffer, offset, length, req);
 };