// 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') {
position = null;
}
callback = maybeCallback(callback);
- req.oncomplete = strWrapper;
return binding.writeBuffer(fd, buffer, offset, length, position, req);
}
length = 'utf8';
}
callback = maybeCallback(position);
- req.oncomplete = bufWrapper;
return binding.writeString(fd, buffer, offset, length, req);
};