Skip to content

Commit fbb869b

Browse files
authored
fix(#108): WASM write creates slice with null pointer (#111)
1 parent a6549b9 commit fbb869b

File tree

4 files changed

+9
-14
lines changed

4 files changed

+9
-14
lines changed

lib/cjs/saxWasm.js

+2-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/esm/saxWasm.js

+2-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/js/__test__/benchmark.mjs

+3-8
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
import { createReadStream, readFileSync } from 'fs';
1+
import { readFileSync } from 'fs';
22
import { URL } from 'url';
33
import { resolve } from 'path';
44
import { Buffer } from 'buffer';
55

6-
import { SAXParser, SaxEventType } from '../../../lib/esm/index.js';
6+
import { SAXParser } from '../../../lib/esm/index.js';
77

88
import nodeXml from 'node-xml';
99
import expat from 'node-expat';
@@ -18,10 +18,7 @@ const chunkLen = 64 * 1024;
1818
async function benchmarkSaxWasmParser() {
1919
const saxWasm = readFileSync(resolve(new URL('../../../lib/sax-wasm.wasm', import.meta.url).pathname));
2020

21-
const parser = new SAXParser(SaxEventType.OpenTag);
22-
parser.eventHandler = (event, detail) => {
23-
const j = detail.toJSON();
24-
};
21+
const parser = new SAXParser();
2522
await parser.prepareWasm(saxWasm);
2623

2724
let t = process.hrtime();
@@ -37,7 +34,6 @@ async function benchmarkSaxWasmParser() {
3734

3835
async function benchmarkNodeXmlParser() {
3936
const parser = new nodeXml.SaxParser(() => void 0);
40-
const readable = createReadStream(resolve(new URL('./xml.xml', import.meta.url).pathname));
4137
let t = process.hrtime();
4238
let offset = 0;
4339
while (offset < xml.length) {
@@ -76,7 +72,6 @@ async function benchmarkSaxesParser() {
7672

7773
async function benchmarkSaxParser() {
7874
const parser = sax.createStream();
79-
const readable = createReadStream(resolve(new URL('./xml.xml', import.meta.url).pathname));
8075
let t = process.hrtime();
8176

8277
let offset = 0;

src/js/saxWasm.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -672,8 +672,8 @@ export class SAXParser {
672672
if (this.writeBuffer?.buffer !== buffer) {
673673
this.writeBuffer = new Uint8Array(buffer);
674674
}
675-
this.writeBuffer.set(chunk, 0);
676-
write(0, chunk.byteLength);
675+
this.writeBuffer.set(chunk, 4);
676+
write(4, chunk.byteLength);
677677
}
678678

679679
/**

0 commit comments

Comments
 (0)