@@ -104,8 +104,9 @@ where
104
104
fn load_module < ' a > ( & ' a self , wasm : & ' a [ u8 ] ) -> BoxFuture < ' a , anyhow:: Result < Module > > {
105
105
let engine = self . engine ( ) ;
106
106
let module_cache = self . module_cache ( ) ;
107
+ let hash = ModuleHash :: hash ( wasm) ;
107
108
108
- let task = async move { load_module ( & engine, & module_cache, wasm) . await } ;
109
+ let task = async move { load_module ( & engine, & module_cache, wasm, hash ) . await } ;
109
110
110
111
Box :: pin ( task)
111
112
}
@@ -150,16 +151,16 @@ pub async fn load_module(
150
151
engine : & wasmer:: Engine ,
151
152
module_cache : & ( dyn ModuleCache + Send + Sync ) ,
152
153
wasm : & [ u8 ] ,
154
+ wasm_hash : ModuleHash ,
153
155
) -> Result < Module , anyhow:: Error > {
154
- let hash = ModuleHash :: hash ( wasm) ;
155
- let result = module_cache. load ( hash, engine) . await ;
156
+ let result = module_cache. load ( wasm_hash, engine) . await ;
156
157
157
158
match result {
158
159
Ok ( module) => return Ok ( module) ,
159
160
Err ( CacheError :: NotFound ) => { }
160
161
Err ( other) => {
161
162
tracing:: warn!(
162
- %hash ,
163
+ %wasm_hash ,
163
164
error=& other as & dyn std:: error:: Error ,
164
165
"Unable to load the cached module" ,
165
166
) ;
@@ -168,9 +169,9 @@ pub async fn load_module(
168
169
169
170
let module = Module :: new ( & engine, wasm) ?;
170
171
171
- if let Err ( e) = module_cache. save ( hash , engine, & module) . await {
172
+ if let Err ( e) = module_cache. save ( wasm_hash , engine, & module) . await {
172
173
tracing:: warn!(
173
- %hash ,
174
+ %wasm_hash ,
174
175
error=& e as & dyn std:: error:: Error ,
175
176
"Unable to cache the compiled module" ,
176
177
) ;
@@ -549,7 +550,9 @@ impl Runtime for OverriddenRuntime {
549
550
if self . engine . is_some ( ) || self . module_cache . is_some ( ) {
550
551
let engine = self . engine ( ) ;
551
552
let module_cache = self . module_cache ( ) ;
552
- let task = async move { load_module ( & engine, & module_cache, wasm) . await } ;
553
+ let hash = ModuleHash :: hash ( wasm) ;
554
+
555
+ let task = async move { load_module ( & engine, & module_cache, wasm, hash) . await } ;
553
556
Box :: pin ( task)
554
557
} else {
555
558
self . inner . load_module ( wasm)
0 commit comments