summaryrefslogtreecommitdiff
path: root/src/shell-interface.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/shell-interface.h')
-rw-r--r--src/shell-interface.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/shell-interface.h b/src/shell-interface.h
index f6c12e8ca..55f9b2a0b 100644
--- a/src/shell-interface.h
+++ b/src/shell-interface.h
@@ -92,9 +92,10 @@ struct ShellExternalInterface : ModuleInstance::ExternalInterface {
memory.resize(wasm.memory.initial * wasm::Memory::kPageSize);
// apply memory segments
for (auto& segment : wasm.memory.segments) {
- assert(segment.offset + segment.data.size() <= wasm.memory.initial * wasm::Memory::kPageSize);
+ Address offset = ConstantExpressionRunner().visit(segment.offset).value.geti32();
+ assert(offset + segment.data.size() <= wasm.memory.initial * wasm::Memory::kPageSize);
for (size_t i = 0; i != segment.data.size(); ++i) {
- memory.set(segment.offset + i, segment.data[i]);
+ memory.set(offset + i, segment.data[i]);
}
}
}