Skip to content

Commit 2faaa6f

Browse files
committed
feat: resize when writting byte by index.
1 parent 85bb15a commit 2faaa6f

File tree

2 files changed

+8
-5
lines changed

2 files changed

+8
-5
lines changed

src/dynamicBuffer.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1790,11 +1790,14 @@ export class DynamicBuffer {
17901790
* @param offset The position to write data.
17911791
*/
17921792
private writeByte(data: any, offset: number) {
1793-
if (!this.buffer || this.length === 0 || offset >= this.length) {
1794-
return;
1795-
}
1793+
this.ensureSize(offset + 1);
17961794

1795+
// @ts-ignore
17971796
this.buffer[offset] = data;
1797+
1798+
if (offset >= this.used) {
1799+
this.used = offset + 1;
1800+
}
17981801
}
17991802

18001803
/**

test/write.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ describe('Set by index tests', () => {
1414
buffer[-1] = 33; // !
1515
assert.equal(buffer.toString(), 'Hello world');
1616

17-
buffer[buffer.length] = 33; // !
18-
assert.equal(buffer.toString(), 'Hello world');
17+
buffer[buffer.length] = 33; // auto-resize
18+
assert.equal(buffer.toString(), 'Hello world!');
1919
});
2020
});
2121

0 commit comments

Comments
 (0)