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

Method next

crates/cranelift/src/debug/transform/address_transform.rs:275–297  ·  view source on GitHub ↗
(&mut self)

Source from the content-addressed store, hash-verified

273impl<'a> Iterator for TransformRangeStartIter<'a> {
274 type Item = (GeneratedAddress, RangeIndex);
275 fn next(&mut self) -> Option<Self::Item> {
276 if let Some((first, tail)) = self.indices.split_first() {
277 let range_index = *first;
278 let range = &self.ranges[range_index];
279 self.indices = tail;
280 let address = match range
281 .positions
282 .binary_search_by(|a| a.wasm_pos.cmp(&self.addr))
283 {
284 Ok(i) => range.positions[i].gen_start,
285 Err(i) => {
286 if i == 0 {
287 range.gen_start
288 } else {
289 range.positions[i - 1].gen_end
290 }
291 }
292 };
293 Some((address, range_index))
294 } else {
295 None
296 }
297 }
298}
299
300// Utility iterator to find all ranges ends for specific Wasm address.

Callers 3

newMethod · 0.45
translate_rawMethod · 0.45

Calls 5

binary_search_byMethod · 0.80
cmpMethod · 0.45
lenMethod · 0.45
as_refMethod · 0.45
replaceMethod · 0.45

Tested by 1