(&mut self, func_addrs: &[u32], addr: usize, len: usize, val: TableElement)
| 39 | } |
| 40 | |
| 41 | pub(crate) fn fill(&mut self, func_addrs: &[u32], addr: usize, len: usize, val: TableElement) -> Result<(), Trap> { |
| 42 | let val = val.map(|addr| self.resolve_func_ref(func_addrs, addr)); |
| 43 | let end = addr.checked_add(len).ok_or_else(|| self.trap_oob(addr, len))?; |
| 44 | if end > self.elements.len() { |
| 45 | return Err(self.trap_oob(addr, len)); |
| 46 | } |
| 47 | |
| 48 | self.elements[addr..end].fill(val); |
| 49 | Ok(()) |
| 50 | } |
| 51 | |
| 52 | pub(crate) fn get(&self, addr: TableAddr) -> Result<&TableElement, Trap> { |
| 53 | self.elements.get(addr as usize).ok_or(Trap::TableOutOfBounds { |
no test coverage detected