MCPcopy Create free account
hub / github.com/diem/move / deserialize_compiled_module

Function deserialize_compiled_module

language/move-binary-format/src/deserializer.rs:289–313  ·  view source on GitHub ↗

Module internal function that manages deserialization of modules.

(binary: &[u8])

Source from the content-addressed store, hash-verified

287
288/// Module internal function that manages deserialization of modules.
289fn deserialize_compiled_module(binary: &[u8]) -> BinaryLoaderResult<CompiledModule> {
290 let binary_len = binary.len();
291 let mut cursor = VersionedCursor::new(binary)?;
292 let table_count = load_table_count(&mut cursor)?;
293 let mut tables: Vec<Table> = Vec::new();
294 read_tables(&mut cursor, table_count, &mut tables)?;
295 let content_len = check_tables(&mut tables, binary_len)?;
296
297 let mut table_contents_buffer = Vec::new();
298 let table_contents = read_table_contents(
299 &mut cursor,
300 &mut table_contents_buffer,
301 content_len as usize,
302 )?;
303
304 let mut module = CompiledModule {
305 version: cursor.version(),
306 self_module_handle_idx: load_module_handle_index(&mut cursor)?,
307 ..Default::default()
308 };
309
310 build_compiled_module(&mut module, &table_contents, &tables)?;
311
312 Ok(module)
313}
314
315/// Reads all the table headers.
316///

Callers 1

Calls 8

load_table_countFunction · 0.85
read_tablesFunction · 0.85
check_tablesFunction · 0.85
read_table_contentsFunction · 0.85
load_module_handle_indexFunction · 0.85
build_compiled_moduleFunction · 0.85
lenMethod · 0.45
versionMethod · 0.45

Tested by

no test coverage detected