diff --git a/lib/BufferMaker.js b/lib/BufferMaker.js index 81f582c..cbe0417 100644 --- a/lib/BufferMaker.js +++ b/lib/BufferMaker.js @@ -1,4 +1,5 @@ -var bignum = require('bignum'); +var Long = require('long'); + var BufferMaker = function(){ this.plan = []; @@ -57,10 +58,9 @@ BufferMaker.prototype.make = function(){ item = this.plan[i]; switch(item.type){ case "Int64BE": - var signed64BitBuffer = bignum(item.value).toBuffer({endian : "big", size : 8}); - for(j = 0; j < signed64BitBuffer.length; j++){ - buffer[offset + j] = signed64BitBuffer[j]; - } + var longVal = Long.fromString(item.value + ""); + buffer.writeUInt32BE(longVal.getHighBits(), offset); //write the high order bits (shifted over) + buffer.writeUInt32BE(longVal.getLowBits(), offset + 4); //write the low order bits offset += 8; break; case "string": diff --git a/package.json b/package.json index e63a7e6..8a2fc44 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ } ], "dependencies": { - "bignum" : "0.6.2" + "long" : "latest" }, "devDependencies" : { "jscoverage" : "0.3.6",