From 9b5b576eab40acc7d19a9be6aa1c58cd45a7b5ac Mon Sep 17 00:00:00 2001 From: Baiju Meswani Date: Wed, 25 Feb 2026 17:11:11 -0800 Subject: [PATCH 1/2] Use bytes instead of str length --- sdk_v2/js/src/detail/coreInterop.ts | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/sdk_v2/js/src/detail/coreInterop.ts b/sdk_v2/js/src/detail/coreInterop.ts index e09055db..db1a339b 100644 --- a/sdk_v2/js/src/detail/coreInterop.ts +++ b/sdk_v2/js/src/detail/coreInterop.ts @@ -69,6 +69,10 @@ export class CoreInterop { return null; } + private static _toBytes(str: string): Uint8Array { + return new TextEncoder().encode(str); + } + constructor(config: Configuration) { const corePath = config.params['FoundryLocalCorePath'] || CoreInterop._resolveDefaultCorePath(config); @@ -96,14 +100,15 @@ export class CoreInterop { koffi.encode(cmdBuf, 'char', command, command.length + 1); const dataStr = params ? JSON.stringify(params) : ''; - const dataBuf = koffi.alloc('char', dataStr.length + 1); - koffi.encode(dataBuf, 'char', dataStr, dataStr.length + 1); + const dataBytes = CoreInterop._toBytes(dataStr); + const dataBuf = koffi.alloc('char', dataBytes.length + 1); + koffi.encode(dataBuf, 'char', dataStr, dataBytes.length + 1); const req = { Command: koffi.address(cmdBuf), CommandLength: command.length, Data: koffi.address(dataBuf), - DataLength: dataStr.length + DataLength: dataBytes.length }; const res = { Data: 0, DataLength: 0, Error: 0, ErrorLength: 0 }; @@ -129,8 +134,9 @@ export class CoreInterop { koffi.encode(cmdBuf, 'char', command, command.length + 1); const dataStr = params ? JSON.stringify(params) : ''; - const dataBuf = koffi.alloc('char', dataStr.length + 1); - koffi.encode(dataBuf, 'char', dataStr, dataStr.length + 1); + const dataBytes = CoreInterop._toBytes(dataStr); + const dataBuf = koffi.alloc('char', dataBytes.length + 1); + koffi.encode(dataBuf, 'char', dataStr, dataBytes.length + 1); const cb = koffi.register((data: any, length: number, userData: any) => { const chunk = koffi.decode(data, 'char', length); @@ -142,7 +148,7 @@ export class CoreInterop { Command: koffi.address(cmdBuf), CommandLength: command.length, Data: koffi.address(dataBuf), - DataLength: dataStr.length + DataLength: dataBytes.length }; const res = { Data: 0, DataLength: 0, Error: 0, ErrorLength: 0 }; From 55911591ef434c8aa43fc002fc8e2baf09d99fa0 Mon Sep 17 00:00:00 2001 From: Baiju Meswani Date: Wed, 25 Feb 2026 17:15:55 -0800 Subject: [PATCH 2/2] Use private instead of private static --- sdk_v2/js/src/detail/coreInterop.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sdk_v2/js/src/detail/coreInterop.ts b/sdk_v2/js/src/detail/coreInterop.ts index db1a339b..167784e7 100644 --- a/sdk_v2/js/src/detail/coreInterop.ts +++ b/sdk_v2/js/src/detail/coreInterop.ts @@ -69,7 +69,7 @@ export class CoreInterop { return null; } - private static _toBytes(str: string): Uint8Array { + private _toBytes(str: string): Uint8Array { return new TextEncoder().encode(str); } @@ -100,7 +100,7 @@ export class CoreInterop { koffi.encode(cmdBuf, 'char', command, command.length + 1); const dataStr = params ? JSON.stringify(params) : ''; - const dataBytes = CoreInterop._toBytes(dataStr); + const dataBytes = this._toBytes(dataStr); const dataBuf = koffi.alloc('char', dataBytes.length + 1); koffi.encode(dataBuf, 'char', dataStr, dataBytes.length + 1); @@ -134,7 +134,7 @@ export class CoreInterop { koffi.encode(cmdBuf, 'char', command, command.length + 1); const dataStr = params ? JSON.stringify(params) : ''; - const dataBytes = CoreInterop._toBytes(dataStr); + const dataBytes = this._toBytes(dataStr); const dataBuf = koffi.alloc('char', dataBytes.length + 1); koffi.encode(dataBuf, 'char', dataStr, dataBytes.length + 1);