Forráskód Böngészése

* WebAssembly internal linker: allow specifying the max memory size also for
binaries that don't use threads and shared memory. Unlike the shared memory
case, in this case the max memory limit is optional.

Nikolay Nikolov 1 éve
szülő
commit
4112318e2f
1 módosított fájl, 11 hozzáadás és 2 törlés
  1. 11 2
      compiler/ogwasm.pas

+ 11 - 2
compiler/ogwasm.pas

@@ -4956,8 +4956,17 @@ implementation
         if not (ts_wasm_threads in current_settings.targetswitches) then
           begin
             WriteUleb(FWasmSections[wsiMemory],1);
-            WriteByte(FWasmSections[wsiMemory],0);
-            WriteUleb(FWasmSections[wsiMemory],FMinMemoryPages);
+            if FMaxMemoryPages>=FMinMemoryPages then
+              begin
+                WriteByte(FWasmSections[wsiMemory],1);
+                WriteUleb(FWasmSections[wsiMemory],FMinMemoryPages);
+                WriteUleb(FWasmSections[wsiMemory],FMaxMemoryPages);
+              end
+            else
+              begin
+                WriteByte(FWasmSections[wsiMemory],0);
+                WriteUleb(FWasmSections[wsiMemory],FMinMemoryPages);
+              end;
           end;
 
         if ts_wasm_threads in current_settings.targetswitches then