pub fn constant_offset_fix(
    swap_ranges: &SwapRanges,
    bottom: usize,
    top: usize
) -> Result<(), String>
Expand description

A support function for self swap of crate Iterates through a given set of address from top to bottom and checks whether they fall within the range of an old crate and shifts them by a constant offset to map them to correct region in the new crate. Fix is as follows if virtual address matches. new_address = old_address - start_address_of_old_text_region + start_address_of_new_text_region. Address ranges are provided via SwapRanges struct. Uses unsafe logic for pointer manipulation