Skip to content

Commit

Permalink
Fixed bug with a bignum conversion in bitmap pack/unpack;
Browse files Browse the repository at this point in the history
Clean-up some commented lines;
Added cache for bitmap.length;
  • Loading branch information
m1ome committed Sep 25, 2014
1 parent 5188c85 commit f7f5ead
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 19 deletions.
32 changes: 13 additions & 19 deletions lib/packer/b.js
Original file line number Diff line number Diff line change
@@ -1,30 +1,28 @@
var bignum = require('bignum');

exports.unpack = function(msg, packager) {

var chunk = msg;
var chunkBin, data = '', bitmap = '';

do {
chunk = msg.substring(0, packager.length);
chunkBitmap = parseInt(chunk, 16).toString(2);
chunkBitmap = bignum(chunk, 16).toString(2);
while (chunkBitmap.length < (packager.length * 4)) {
chunkBitmap = '0' + chunkBitmap;
}
data += chunk;
bitmap += chunkBitmap;
msg = msg.substr(packager.length);
} while(chunkBitmap[0] > 0);

var fieldIds = [];
for(var i in bitmap) {
if (i > 0 && bitmap[i] == 1) {
fieldIds.push(parseInt(i) + 1);
}
}

//console.log(data);
//console.log(bitmap);


return {
data: data,
bitmap: bitmap,
Expand All @@ -35,7 +33,7 @@ exports.unpack = function(msg, packager) {

exports.pack = function(data, packager) {
var bitmap = '';

var lastIndex = 0;
for (var i in data) {
if (i > 1) {
Expand All @@ -47,20 +45,16 @@ exports.pack = function(data, packager) {
lastIndex = i;
}
}

var length = Math.ceil(bitmap.length / (packager.length * 4)) * (packager.length * 4);

var blength = bitmap.length;
var length = Math.ceil(blength / (packager.length * 4)) * (packager.length * 4);

for(var i = 0; i < length - blength; i++) {
bitmap += '0';
}

var msg = parseInt(bitmap,2).toString(16).toUpperCase();

//console.log(msg);
//console.log(bitmap);




var msg = bignum(bitmap,2).toString(16).toUpperCase();

return {
msg: msg,
bitmap: bitmap
Expand Down
3 changes: 3 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,5 +14,8 @@
"main": "./index",
"engines": {
"node": "*"
},
"dependencies": {
"bignum": "^0.9.0"
}
}

0 comments on commit f7f5ead

Please sign in to comment.