浏览代码

* Do not TJSON.Stringify if message is already a string

Michael Van Canneyt 3 周之前
父节点
当前提交
3480dad504
共有 1 个文件被更改,包括 7 次插入3 次删除
  1. 7 3
      packages/wasm-utils/src/wasm.pas2js.messagechannelapi.pas

+ 7 - 3
packages/wasm-utils/src/wasm.pas2js.messagechannelapi.pas

@@ -171,15 +171,19 @@ var
   lMsgProc: TMsgProc absolute lMsgProcExp;
   lMem : TWasmPointer;
   lLen : Longint;
+  sMsg : string absolute aMsg; // Avoid a typecast
   S : string;
 
 begin
   lMsgProcExp:=InstanceExports[MsgChannelFN_OnMessageUtf16];
   if not Assigned(lMsgProcExp) then
     Exit;
-  S:=TJSJSON.stringify(aMsg);
-  lLen:=Length(S)*2;
-  lMem:=InstanceExports.AllocMem(lLen);
+  if isString(aMsg) then
+    s:=sMsg
+  else
+    S:=TJSJSON.stringify(aMsg);
+  lLen:=Length(S);
+  lMem:=InstanceExports.AllocMem(lLen*2);
   try
     Env.SetUTF16StringInMem(lMem,S);
     lMsgproc(aID,lMem,lLen);