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 (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 // Memory initialization
let memory_type = MemoryDescriptor { 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)) Ok((table.minimum, table.maximum))
} }
pub fn get_emscripten_memory_size(module: &Module) -> (Pages, Option<Pages>, bool) { pub fn get_emscripten_memory_size(module: &Module) -> Result<(Pages, Option<Pages>, bool), String> {
assert!( if module.info().imported_tables.len() == 0 {
module.info().imported_tables.len() > 0, return Err("Emscripten requires at least one imported memory".to_string());
"Emscripten requires at least one imported memory" }
);
let (_, memory) = &module.info().imported_memories[ImportedMemoryIndex::new(0)]; 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` /// Reads values written by `-s EMIT_EMSCRIPTEN_METADATA=1`