diff --git a/packages/vm/src/modules/file_system_cache.rs b/packages/vm/src/modules/file_system_cache.rs index e4b39eb1e3..e49063384f 100644 --- a/packages/vm/src/modules/file_system_cache.rs +++ b/packages/vm/src/modules/file_system_cache.rs @@ -121,6 +121,14 @@ impl FileSystemCache { self.unchecked_modules = unchecked; } + /// Returns the path to the serialized module with the given checksum. + fn module_file(&self, checksum: &Checksum) -> PathBuf { + let mut path = self.modules_path.clone(); + path.push(checksum.to_hex()); + path.set_extension("module"); + path + } + /// Loads a serialized module from the file system and returns a module (i.e. artifact + store), /// along with the size of the serialized module. pub fn load( @@ -128,8 +136,7 @@ impl FileSystemCache { checksum: &Checksum, engine: &impl AsEngineRef, ) -> VmResult> { - let filename = checksum.to_hex(); - let file_path = self.modules_path.join(filename); + let file_path = self.module_file(checksum); let result = if self.unchecked_modules { unsafe { Module::deserialize_from_file_unchecked(engine, &file_path) } @@ -158,8 +165,7 @@ impl FileSystemCache { mkdir_p(&self.modules_path) .map_err(|_e| VmError::cache_err("Error creating modules directory"))?; - let filename = checksum.to_hex(); - let path = self.modules_path.join(filename); + let path = self.module_file(checksum); module .serialize_to_file(&path) .map_err(|e| VmError::cache_err(format!("Error writing module to disk: {e}")))?; @@ -171,8 +177,7 @@ impl FileSystemCache { /// /// Returns true if the file existed and false if the file did not exist. pub fn remove(&mut self, checksum: &Checksum) -> VmResult { - let filename = checksum.to_hex(); - let file_path = self.modules_path.join(filename); + let file_path = self.module_file(checksum); if file_path.exists() { fs::remove_file(file_path) @@ -290,7 +295,7 @@ mod tests { cache.store(&checksum, &module).unwrap(); let mut globber = glob::glob(&format!( - "{}/v8-wasmer5/**/{}", + "{}/v8-wasmer5/**/{}.module", tmp_dir.path().to_string_lossy(), checksum ))