Skip to content

Commit 646ec32

Browse files
authored
Merge pull request #19 from Malvineous/buffer-fix
Allow Buffer objects to be written to
2 parents 8d24c8b + 50ab386 commit 646ec32

File tree

2 files changed

+26
-2
lines changed

2 files changed

+26
-2
lines changed

bit-buffer.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ var BitView = function (source, byteOffset, byteLength) {
1919
byteOffset = byteOffset || 0;
2020
byteLength = byteLength || source.byteLength /* ArrayBuffer */ || source.length /* Buffer */;
2121

22-
this._view = new Uint8Array(source, byteOffset, byteLength);
22+
this._view = new Uint8Array(source.buffer || source, byteOffset, byteLength);
2323

2424
this.bigEndian = false;
2525
};

test.js

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -295,7 +295,8 @@ suite('BitBuffer', function () {
295295
});
296296

297297
test('writeBitStream', function () {
298-
var sourceStream = new BitStream(new ArrayBuffer(64));
298+
var buf = new ArrayBuffer(64);
299+
var sourceStream = new BitStream(buf);
299300

300301
sourceStream.writeBits(0xF0, 8); //0b11110000
301302
sourceStream.writeBits(0xF1, 8); //0b11110001
@@ -306,6 +307,29 @@ suite('BitBuffer', function () {
306307
bsr.index = 0;
307308
assert.equal(bsr.readBits(6), 0x3E); //0b00111110
308309
assert.equal(11, sourceStream.index);
310+
311+
var bin = new Uint8Array(buf);
312+
assert.equal(bin[0], 0xF0);
313+
assert.equal(bin[1], 0xF1);
314+
});
315+
316+
test('writeBitStream Buffer', function () {
317+
var buf = Buffer.alloc(64);
318+
var sourceStream = new BitStream(buf);
319+
320+
sourceStream.writeBits(0xF0, 8); //0b11110000
321+
sourceStream.writeBits(0xF1, 8); //0b11110001
322+
sourceStream.index = 0;
323+
sourceStream.readBits(3); //offset
324+
bsr.writeBitStream(sourceStream, 8);
325+
assert.equal(8, bsr.index);
326+
bsr.index = 0;
327+
assert.equal(bsr.readBits(6), 0x3E); //0b00111110
328+
assert.equal(11, sourceStream.index);
329+
330+
var bin = new Uint8Array(buf.buffer);
331+
assert.equal(bin[0], 0xF0);
332+
assert.equal(bin[1], 0xF1);
309333
});
310334

311335
test('writeBitStream long', function () {

0 commit comments

Comments
 (0)