MCPcopy Index your code
hub / github.com/encounter/objdiff / decode_delta

Function decode_delta

objdiff-core/src/obj/mdebug.rs:179–201  ·  view source on GitHub ↗
(
    endianness: Endianness,
    nibble: u8,
    data: &[u8],
    cursor: &mut usize,
    end: usize,
)

Source from the content-addressed store, hash-verified

177}
178
179fn decode_delta(
180 endianness: Endianness,
181 nibble: u8,
182 data: &[u8],
183 cursor: &mut usize,
184 end: usize,
185) -> Result<i32> {
186 if nibble == 8 {
187 ensure!(*cursor + 2 <= end, "extended delta out of range");
188 let bytes: [u8; 2] = data[*cursor..*cursor + 2].try_into().unwrap();
189 *cursor += 2;
190 Ok(match endianness {
191 Endianness::Big => i16::from_be_bytes(bytes) as i32,
192 Endianness::Little => i16::from_le_bytes(bytes) as i32,
193 })
194 } else {
195 let mut value = (nibble & 0x0f) as i32;
196 if value & 0x8 != 0 {
197 value -= 0x10;
198 }
199 Ok(value)
200 }
201}
202
203fn slice_at(
204 data: &[u8],

Callers 1

parse_line_info_mdebugFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected