| 73 | } |
| 74 | |
| 75 | std::span<byte_t> mem_span(Stack& stack, i64_t ptr, i64_t len) { |
| 76 | MemInst& mem = get_mem(stack, ptr); |
| 77 | size_t off = (size_t)((uint64_t)ptr & PTR_OFF_MASK); |
| 78 | size_t end = off + (size_t)len; |
| 79 | if(end > mem.data.size()) { |
| 80 | throw std::out_of_range("sysenv: memory access out of bounds"); |
| 81 | } |
| 82 | return std::span<byte_t>(mem.data.data() + off, (size_t)len); |
| 83 | } |
| 84 | |
| 85 | std::string mem_string(Stack& stack, i64_t ptr, i64_t len) { |
| 86 | auto sp = mem_span(stack, ptr, len); |
no outgoing calls
no test coverage detected