@@ -11,14 +11,15 @@ use crate::runtime::vm::{
1111use alloc:: sync:: Arc ;
1212use core:: fmt;
1313use core:: ops:: Range ;
14- use wasmtime_environ:: { DefinedMemoryIndex , MemoryInitialization , Module , PrimaryMap , Tunables } ;
14+ use wasmtime_environ:: { DefinedMemoryIndex , MemoryInitialization , Module , Tunables } ;
15+ use wasmtime_environ:: prelude:: TryPrimaryMap ;
1516
1617/// Backing images for memories in a module.
1718///
1819/// This is meant to be built once, when a module is first loaded/constructed,
1920/// and then used many times for instantiation.
2021pub struct ModuleMemoryImages {
21- memories : PrimaryMap < DefinedMemoryIndex , Option < Arc < MemoryImage > > > ,
22+ memories : TryPrimaryMap < DefinedMemoryIndex , Option < Arc < MemoryImage > > > ,
2223}
2324
2425impl ModuleMemoryImages {
@@ -179,7 +180,7 @@ impl ModuleMemoryImages {
179180 MemoryInitialization :: Static { map } => map,
180181 _ => return Ok ( None ) ,
181182 } ;
182- let mut memories = PrimaryMap :: with_capacity ( map. len ( ) ) ;
183+ let mut memories = TryPrimaryMap :: with_capacity ( map. len ( ) ) ? ;
183184 let page_size = crate :: runtime:: vm:: host_page_size ( ) ;
184185 let page_size = u32:: try_from ( page_size) . unwrap ( ) ;
185186 for ( memory_index, init) in map {
@@ -196,7 +197,7 @@ impl ModuleMemoryImages {
196197 let init = match init {
197198 Some ( init) => init,
198199 None => {
199- memories. push ( None ) ;
200+ memories. push ( None ) ? ;
200201 continue ;
201202 }
202203 } ;
@@ -233,7 +234,7 @@ impl ModuleMemoryImages {
233234 None => return Ok ( None ) ,
234235 } ;
235236
236- let idx = memories. push ( Some ( Arc :: new ( image) ) ) ;
237+ let idx = memories. push ( Some ( try_new :: < Arc < _ > > ( image) ? ) ) ? ;
237238 assert_eq ! ( idx, defined_memory) ;
238239 }
239240
0 commit comments