From 005cd568293ee04154cd18aafc8758ebb211268a Mon Sep 17 00:00:00 2001 From: cs8425 Date: Wed, 18 May 2022 14:39:21 +0800 Subject: [PATCH 1/2] use stringToUTF8() not writeAsciiToMemory() --- src/utils/parseArgs.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/utils/parseArgs.js b/src/utils/parseArgs.js index 94e7e6a..77f4d05 100644 --- a/src/utils/parseArgs.js +++ b/src/utils/parseArgs.js @@ -1,8 +1,9 @@ module.exports = (Core, args) => { const argsPtr = Core._malloc(args.length * Uint32Array.BYTES_PER_ELEMENT); args.forEach((s, idx) => { - const buf = Core._malloc(s.length + 1); - Core.writeAsciiToMemory(s, buf); + const sz = s.length*4 + 1; + const buf = Core._malloc(sz); + Core.stringToUTF8(s, buf, sz); Core.setValue(argsPtr + (Uint32Array.BYTES_PER_ELEMENT * idx), buf, 'i32'); }); return [args.length, argsPtr]; From d8085cb5330ed744fb159877d221810d89d292ff Mon Sep 17 00:00:00 2001 From: cs8425 Date: Wed, 18 May 2022 15:35:43 +0800 Subject: [PATCH 2/2] use lengthBytesUTF8() to compute the exact bytes of string --- src/utils/parseArgs.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/utils/parseArgs.js b/src/utils/parseArgs.js index 77f4d05..90c18c5 100644 --- a/src/utils/parseArgs.js +++ b/src/utils/parseArgs.js @@ -1,7 +1,7 @@ module.exports = (Core, args) => { const argsPtr = Core._malloc(args.length * Uint32Array.BYTES_PER_ELEMENT); args.forEach((s, idx) => { - const sz = s.length*4 + 1; + const sz = Core.lengthBytesUTF8(s) + 1; const buf = Core._malloc(sz); Core.stringToUTF8(s, buf, sz); Core.setValue(argsPtr + (Uint32Array.BYTES_PER_ELEMENT * idx), buf, 'i32');