Skip to content

Commit

Permalink
Merge pull request #11 from feross/fisch0920-master
Browse files Browse the repository at this point in the history
fix for bitfields of non-multiple-of-8 length
fixes #10
  • Loading branch information
fb55 committed May 7, 2014
2 parents f48d386 + 258f858 commit 638f82a
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 1 deletion.
1 change: 0 additions & 1 deletion index.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ function BitField(data, opts){
this.grow = opts && (isFinite(opts.grow) && getByteSize(opts.grow) || opts.grow) || 0;

if(typeof data === "number" || data === undefined){
if(data % 8 !== 0) data += 1 << 3;
data = new Container(getByteSize(data));
if(data.fill) data.fill(0); // clear node buffers of garbage
}
Expand Down
21 changes: 21 additions & 0 deletions tests.js
Original file line number Diff line number Diff line change
Expand Up @@ -96,3 +96,24 @@ test("if no data or size passed in, should assume size 0", function(t){

t.end();
});

test("correct size bitfield", function(t){
t.equal(new BitField(1).buffer.length, 1);
t.equal(new BitField(2).buffer.length, 1);
t.equal(new BitField(3).buffer.length, 1);
t.equal(new BitField(4).buffer.length, 1);
t.equal(new BitField(5).buffer.length, 1);
t.equal(new BitField(6).buffer.length, 1);
t.equal(new BitField(7).buffer.length, 1);
t.equal(new BitField(8).buffer.length, 1);
t.equal(new BitField(9).buffer.length, 2);
t.equal(new BitField(10).buffer.length, 2);
t.equal(new BitField(11).buffer.length, 2);
t.equal(new BitField(12).buffer.length, 2);
t.equal(new BitField(13).buffer.length, 2);
t.equal(new BitField(14).buffer.length, 2);
t.equal(new BitField(15).buffer.length, 2);
t.equal(new BitField(16).buffer.length, 2);
t.equal(new BitField(17).buffer.length, 3);
t.end();
});

0 comments on commit 638f82a

Please sign in to comment.