shithub: puzzles

Download patch

ref: 8fa545c76c35dd7954220eb172a1783044794168
parent: f8b15bab6b2a8dd8309cdef3dc49ae3377cb997d
author: Simon Tatham <anakin@pobox.com>
date: Fri Apr 16 14:07:15 EDT 2021

Set ALLOW_MEMORY_GROWTH in the Emscripten build.

How embarrassing. When I updated the Emscripten build to use WASM, a
major reason I bothered to do it at all was that I'd heard that WASM
was capable of reallocating its memory arena larger on the fly. Turns
out that it _can_, but only if you specifically set the option in
Emscripten to allow it.

With this option set, I can finish a 25x25 Galaxies, where previously
the game would crash part way through (and not even a very large part)
with errors about memory growth in the Javascript console.

--- a/cmake/platforms/emscripten.cmake
+++ b/cmake/platforms/emscripten.cmake
@@ -30,6 +30,7 @@
 list(TRANSFORM emcc_export_list APPEND \")
 string(JOIN "," emcc_export_string ${emcc_export_list})
 set(CMAKE_C_LINK_FLAGS "\
+-s ALLOW_MEMORY_GROWTH=1 \
 -s EXPORTED_FUNCTIONS='[${emcc_export_string}]' \
 -s EXTRA_EXPORTED_RUNTIME_METHODS='[cwrap,callMain]'")