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

Method from_slice

cranelift/filetests/src/test_unwind.rs:119–148  ·  view source on GitHub ↗
(mem: &[u8])

Source from the content-addressed store, hash-verified

117
118 impl UnwindInfo {
119 fn from_slice(mem: &[u8]) -> Self {
120 let version_and_flags = mem[0];
121 let prologue_size = mem[1];
122 let unwind_code_count_raw = mem[2];
123 let frame_register_and_offset = mem[3];
124 let mut unwind_codes = Vec::new();
125
126 let mut i = 0;
127 while i < unwind_code_count_raw {
128 let code = UnwindCode::from_slice(&mem[(4 + (i * 2) as usize)..]);
129
130 i += match &code.value {
131 UnwindValue::None => 1,
132 UnwindValue::U16(_) => 2,
133 UnwindValue::U32(_) => 3,
134 };
135
136 unwind_codes.push(code);
137 }
138
139 Self {
140 version: version_and_flags & 0x3,
141 flags: (version_and_flags & 0xF8) >> 3,
142 prologue_size,
143 unwind_code_count_raw,
144 frame_register: frame_register_and_offset & 0xF,
145 frame_register_offset: (frame_register_and_offset & 0xF0) >> 4,
146 unwind_codes,
147 }
148 }
149 }
150
151 #[derive(Debug)]

Callers

nothing calls this directly

Calls 4

from_sliceFunction · 0.85
fromFunction · 0.85
newFunction · 0.50
pushMethod · 0.45

Tested by

no test coverage detected