From e2d56c3f6e20fa1f8765c6503efd580766607b6c Mon Sep 17 00:00:00 2001 From: Sam Clegg Date: Mon, 12 Aug 2024 11:47:46 -0700 Subject: [PATCH] Round the number of pages passed to Memory.grow. NFC Without this the trace line below prints (somewhat confusingly): ``` growMemory: 80740352 (+1048576 bytes / 16.999984741210938 pages) ``` --- src/library.js | 5 +++-- test/other/metadce/test_metadce_hello_dylink.jssize | 2 +- test/other/metadce/test_metadce_mem_O3_grow.gzsize | 2 +- test/other/metadce/test_metadce_mem_O3_grow.jssize | 2 +- 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/library.js b/src/library.js index c7dc8bf6a1455..13fdf52fc7827 100644 --- a/src/library.js +++ b/src/library.js @@ -188,9 +188,10 @@ addToLibrary({ // Grows the wasm memory to the given byte size, and updates the JS views to // it. Returns 1 on success, 0 on error. + $growMemory__deps: ['$alignMemory'], $growMemory: (size) => { var b = wasmMemory.buffer; - var pages = (size - b.byteLength + {{{ WASM_PAGE_SIZE - 1 }}}) / {{{ WASM_PAGE_SIZE }}}; + var pages = alignMemory(size - b.byteLength, {{{ WASM_PAGE_SIZE }}}) / {{{ WASM_PAGE_SIZE }}}; #if RUNTIME_DEBUG dbg(`growMemory: ${size} (+${size - b.byteLength} bytes / ${pages} pages)`); #endif @@ -2262,7 +2263,7 @@ addToLibrary({ #if ASSERTIONS assert(alignment, "alignment argument is required"); #endif - return Math.ceil(size / alignment) * alignment; + return ((size + (alignment - 1)) / alignment) | 0; }, // Allocate memory for an mmap operation. This allocates space of the right diff --git a/test/other/metadce/test_metadce_hello_dylink.jssize b/test/other/metadce/test_metadce_hello_dylink.jssize index d91a3314c13d6..d4f33fe3e8f3a 100644 --- a/test/other/metadce/test_metadce_hello_dylink.jssize +++ b/test/other/metadce/test_metadce_hello_dylink.jssize @@ -1 +1 @@ -13895 +13887 diff --git a/test/other/metadce/test_metadce_mem_O3_grow.gzsize b/test/other/metadce/test_metadce_mem_O3_grow.gzsize index ccea39fb1e0db..b8b2310fdb1f2 100644 --- a/test/other/metadce/test_metadce_mem_O3_grow.gzsize +++ b/test/other/metadce/test_metadce_mem_O3_grow.gzsize @@ -1 +1 @@ -2570 +2575 diff --git a/test/other/metadce/test_metadce_mem_O3_grow.jssize b/test/other/metadce/test_metadce_mem_O3_grow.jssize index a695526401994..c19623257be4b 100644 --- a/test/other/metadce/test_metadce_mem_O3_grow.jssize +++ b/test/other/metadce/test_metadce_mem_O3_grow.jssize @@ -1 +1 @@ -5344 +5355