Pass module info to FCG as Arc

This commit is contained in:
Brandon Fish
2019-05-21 23:44:31 -05:00
parent 5db575e8ef
commit 04d6ccc95c
6 changed files with 145 additions and 102 deletions

View File

@ -11,6 +11,7 @@ use smallvec::SmallVec;
use std::fmt;
use std::fmt::Debug;
use std::marker::PhantomData;
use std::sync::Arc;
use wasmparser::{Operator, Type as WpType};
#[derive(Debug)]
@ -47,7 +48,7 @@ pub trait ModuleCodeGenerator<FCG: FunctionCodeGenerator<E>, RM: RunnableModule,
fn check_precondition(&mut self, module_info: &ModuleInfo) -> Result<(), E>;
/// Creates a new function and returns the function-scope code generator for it.
fn next_function(&mut self, module_info: &ModuleInfo) -> Result<&mut FCG, E>;
fn next_function(&mut self, module_info: Arc<ModuleInfo>) -> Result<&mut FCG, E>;
fn finalize(self, module_info: &ModuleInfo) -> Result<(RM, Box<dyn CacheGen>), E>;
fn feed_signatures(&mut self, signatures: Map<SigIndex, FuncSig>) -> Result<(), E>;