(&mut self, addr: u32)
| 1259 | } |
| 1260 | |
| 1261 | fn exec_memory_grow(&mut self, addr: u32) -> Result<(), Trap> { |
| 1262 | let mem = self.store.state.get_mem_mut(self.module.resolve_mem_addr(addr)); |
| 1263 | let is_64bit = mem.is_64bit(); |
| 1264 | let pages_delta = match is_64bit { |
| 1265 | true => <i64>::stack_pop(&mut self.store.value_stack), |
| 1266 | false => i64::from(<i32>::stack_pop(&mut self.store.value_stack)), |
| 1267 | }; |
| 1268 | |
| 1269 | let size = mem.grow(pages_delta, self.store.engine.config().trap_on_oom())?.unwrap_or(-1); |
| 1270 | match is_64bit { |
| 1271 | true => self.store.value_stack.push::<i64>(size)?, |
| 1272 | false => self.store.value_stack.push::<i32>(size as i32)?, |
| 1273 | }; |
| 1274 | |
| 1275 | Ok(()) |
| 1276 | } |
| 1277 | |
| 1278 | fn exec_memory_copy(&mut self, dst_mem: u32, src_mem: u32) -> Result<(), Trap> { |
| 1279 | let size = i32::stack_pop(&mut self.store.value_stack); |
no test coverage detected