]> zoso.dev Git - buffer.git/commitdiff
Fix: buffer.copy ignores sourceEnd if it's set to 0
authorMichael Williamson <mike@zwobble.org>
Thu, 11 Apr 2013 20:30:06 +0000 (21:30 +0100)
committerMichael Williamson <mike@zwobble.org>
Thu, 11 Apr 2013 20:30:06 +0000 (21:30 +0100)
index.js
test/buffer.js

index a4bf90c63dd315454078e3fd55892a5d0b3e26c2..19aae8f4d677851341ca0e25a39c94c9b409b8ee 100644 (file)
--- a/index.js
+++ b/index.js
@@ -306,7 +306,9 @@ Buffer.prototype.slice = function(start, end) {
 Buffer.prototype.copy = function(target, target_start, start, end) {
   var source = this;
   start || (start = 0);
-  end || (end = this.length);
+  if (end === undefined || isNaN(end)) {
+    end = this.length;
+  }
   target_start || (target_start = 0);
 
   if (end < start) throw new Error('sourceEnd < sourceStart');
index 93b08b4dd30685c5b0e2a8b883c440d94ecfd95d..f431cc36a5d625abe8a0949c5017c593ec0c71c4 100644 (file)
@@ -223,3 +223,12 @@ test("fill", function(t) {
     t.equal(b.toString('hex'), '02020202020202020202');
     t.end();
 });
+
+test('copy() empty buffer with sourceEnd=0', function (t) {
+    t.plan(1);
+    var source = new B([42]);
+    var destination = new B([43]);
+    source.copy(destination, 0, 0, 0);
+    t.equal(destination.readUInt8(0), 43);
+    t.end();
+});