Przeglądaj źródła

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

Michael Van Canneyt 2 tygodni temu
rodzic
commit
3480dad504

+ 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);