Skip to content

Commit

Permalink
Fixed write functions, thanks to @ysangkok
Browse files Browse the repository at this point in the history
  • Loading branch information
toots committed Sep 20, 2012
1 parent ee1007e commit d29e35b
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 13 deletions.
26 changes: 13 additions & 13 deletions index.js
Expand Up @@ -931,7 +931,7 @@ Buffer.prototype.writeUInt8 = function(value, offset, noAssert) {
verifuint(value, 0xff); verifuint(value, 0xff);
} }


buffer[offset] = value; buffer.parent[buffer.offset + offset] = value;
}; };


function writeUInt16(buffer, value, offset, isBigEndian, noAssert) { function writeUInt16(buffer, value, offset, isBigEndian, noAssert) {
Expand All @@ -952,11 +952,11 @@ function writeUInt16(buffer, value, offset, isBigEndian, noAssert) {
} }


if (isBigEndian) { if (isBigEndian) {
buffer[offset] = (value & 0xff00) >>> 8; buffer.parent[buffer.offset + offset] = (value & 0xff00) >>> 8;
buffer[offset + 1] = value & 0x00ff; buffer.parent[buffer.offset + offset + 1] = value & 0x00ff;
} else { } else {
buffer[offset + 1] = (value & 0xff00) >>> 8; buffer.parent[buffer.offset + offset + 1] = (value & 0xff00) >>> 8;
buffer[offset] = value & 0x00ff; buffer.parent[buffer.offset + offset] = value & 0x00ff;
} }
} }


Expand Down Expand Up @@ -986,15 +986,15 @@ function writeUInt32(buffer, value, offset, isBigEndian, noAssert) {
} }


if (isBigEndian) { if (isBigEndian) {
buffer[offset] = (value >>> 24) & 0xff; buffer.parent[buffer.offset + offset] = (value >>> 24) & 0xff;
buffer[offset + 1] = (value >>> 16) & 0xff; buffer.parent[buffer.offset + offset + 1] = (value >>> 16) & 0xff;
buffer[offset + 2] = (value >>> 8) & 0xff; buffer.parent[buffer.offset + offset + 2] = (value >>> 8) & 0xff;
buffer[offset + 3] = value & 0xff; buffer.parent[buffer.offset + offset + 3] = value & 0xff;
} else { } else {
buffer[offset + 3] = (value >>> 24) & 0xff; buffer.parent[buffer.offset + offset + 3] = (value >>> 24) & 0xff;
buffer[offset + 2] = (value >>> 16) & 0xff; buffer.parent[buffer.offset + offset + 2] = (value >>> 16) & 0xff;
buffer[offset + 1] = (value >>> 8) & 0xff; buffer.parent[buffer.offset + offset + 1] = (value >>> 8) & 0xff;
buffer[offset] = value & 0xff; buffer.parent[buffer.offset + offset] = value & 0xff;
} }
} }


Expand Down
22 changes: 22 additions & 0 deletions test/buffer.js
Expand Up @@ -72,3 +72,25 @@ test('hex buffer to ascii', function (t) {
); );
t.end(); t.end();
}); });

test("hex of write{Uint,Int}{8,16,32}{LE,BE}", function(t) {
t.plan(2*2*2+2);
["UInt","Int"].forEach(function(x){
[8,16,32].forEach(function(y){
var endianesses = (y === 8) ? [""] : ["LE","BE"];
endianesses.forEach(function(z){
var v1 = new buffer.Buffer(y / 8);
var v2 = new Buffer(y / 8);
var fn = "write" + x + y + z;
var val = (x === "Int") ? -3 : 3;
v1[fn](val, 0);
v2[fn](val, 0);
t.equal(
v1.toString("hex"),
v2.toString("hex")
);
});
});
});
t.end();
});

0 comments on commit d29e35b

Please sign in to comment.