Преглед на файлове

* 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 година
родител
ревизия
4112318e2f
променени са 1 файла, в които са добавени 11 реда и са изтрити 2 реда
  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