MCPcopy Create free account
hub / github.com/bytecodealliance/wasmtime / resolve_table_data

Method resolve_table_data

winch/codegen/src/codegen/env.rs:233–264  ·  view source on GitHub ↗

Returns the table information for the given table index.

(&mut self, index: TableIndex)

Source from the content-addressed store, hash-verified

231
232 /// Returns the table information for the given table index.
233 pub fn resolve_table_data(&mut self, index: TableIndex) -> TableData {
234 match self.resolved_tables.entry(index) {
235 Occupied(entry) => *entry.get(),
236 Vacant(entry) => {
237 let (from_offset, base_offset, current_elems_offset) =
238 match self.translation.module.defined_table_index(index) {
239 Some(defined) => (
240 None,
241 self.vmoffsets.vmctx_vmtable_definition_base(defined),
242 self.vmoffsets
243 .vmctx_vmtable_definition_current_elements(defined),
244 ),
245 None => (
246 Some(self.vmoffsets.vmctx_vmtable_from(index)),
247 self.vmoffsets.vmtable_definition_base().into(),
248 self.vmoffsets.vmtable_definition_current_elements().into(),
249 ),
250 };
251
252 *entry.insert(TableData {
253 import_from: from_offset,
254 offset: base_offset,
255 current_elems_offset,
256 element_size: OperandSize::from_bytes(self.vmoffsets.ptr.size()),
257 current_elements_size: OperandSize::from_bytes(
258 self.vmoffsets.size_of_vmtable_definition_current_elements(),
259 ),
260 ty: self.translation.module.tables[index],
261 })
262 }
263 }
264 }
265
266 /// Resolve a `HeapData` from a [MemoryIndex].
267 pub fn resolve_heap(&mut self, index: MemoryIndex) -> HeapData {

Callers 6

visit_table_sizeMethod · 0.80
emit_table_getMethod · 0.80
emit_table_setMethod · 0.80
emit_table_fillMethod · 0.80
emit_table_copyMethod · 0.80
emit_table_initMethod · 0.80

Calls 11

defined_table_indexMethod · 0.80
vmctx_vmtable_fromMethod · 0.80
entryMethod · 0.45
getMethod · 0.45
insertMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected