Selaa lähdekoodia

* 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 vuosi sitten
vanhempi
commit
4112318e2f
1 muutettua tiedostoa jossa 11 lisäystä ja 2 poistoa
  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