Convert emscripten memory assertion to error

This commit is contained in:
Brandon Fish
2019-08-16 09:18:51 -06:00
parent 03cabce2d5
commit d1c9ab3539
2 changed files with 6 additions and 7 deletions

View File

@ -459,7 +459,7 @@ impl EmscriptenGlobals {
}
let (table_min, table_max) = get_emscripten_table_size(&module)?;
let (memory_min, memory_max, shared) = get_emscripten_memory_size(&module);
let (memory_min, memory_max, shared) = get_emscripten_memory_size(&module)?;
// Memory initialization
let memory_type = MemoryDescriptor {

View File

@ -41,13 +41,12 @@ pub fn get_emscripten_table_size(module: &Module) -> Result<(u32, Option<u32>),
Ok((table.minimum, table.maximum))
}
pub fn get_emscripten_memory_size(module: &Module) -> (Pages, Option<Pages>, bool) {
assert!(
module.info().imported_tables.len() > 0,
"Emscripten requires at least one imported memory"
);
pub fn get_emscripten_memory_size(module: &Module) -> Result<(Pages, Option<Pages>, bool), String> {
if module.info().imported_tables.len() == 0 {
return Err("Emscripten requires at least one imported memory".to_string());
}
let (_, memory) = &module.info().imported_memories[ImportedMemoryIndex::new(0)];
(memory.minimum, memory.maximum, memory.shared)
Ok((memory.minimum, memory.maximum, memory.shared))
}
/// Reads values written by `-s EMIT_EMSCRIPTEN_METADATA=1`