Ghidra 11.3.2
Ghidra internal decompiler documentation.
|
A list of address ranges that need to be converted to SSA form. More...
#include <heritage.hh>
Public Types | |
typedef list< MemRange >::iterator | iterator |
Iterator in the list. | |
Public Member Functions | |
void | add (Address addr, int4 size, uint4 fl) |
Add a range to the list. | |
iterator | insert (iterator pos, Address addr, int4 size, uint4 fl) |
Insert a disjoint range in the list. | |
iterator | erase (iterator iter) |
Remove a particular range. | |
iterator | begin (void) |
Get iterator to beginning of this list. | |
iterator | end (void) |
Get iterator to end of this list. | |
void | clear (void) |
Clear all ranges in the list. | |
Private Attributes | |
list< MemRange > | tasklist |
List of address ranges that needs to be processed. | |
A list of address ranges that need to be converted to SSA form.
The disjoint list of ranges are built up and processed in a single pass. The container is fed a list of ranges that may be overlapping but are already in address order. It constructs a disjoint list by taking the union of overlapping ranges.
void ghidra::TaskList::add | ( | Address | addr, |
int4 | size, | ||
uint4 | fl | ||
) |
Add a range to the list.
Addresses fed to this method must already be sorted. If the given range intersects the last range in the list, the last range is extended to cover it. Otherwise the range is added as a new element to the end of the list. The given boolean properties are associated with any new element. If an old element is extended, any new boolean properties are ORed into the old element's properties.
addr | is the starting address of the given range |
size | is the number of bytes in the given range |
fl | are the given boolean properties to associate with the range |
References ghidra::MemRange::addr, ghidra::MemRange::flags, ghidra::Address::overlap(), ghidra::MemRange::size, and tasklist.
Referenced by ghidra::Heritage::heritage().
TaskList::iterator ghidra::TaskList::insert | ( | iterator | pos, |
Address | addr, | ||
int4 | size, | ||
uint4 | fl | ||
) |
Insert a disjoint range in the list.
This can be used to add a range anywhere in the list, but the new range must already be disjoint from ranges in the list.
pos | is the position in the list before which the new range will be inserted |
addr | is the starting address of the new range |
size | is the number of bytes in the new range |
fl | is the boolean properties to be associated with the new range |
References tasklist.
Referenced by ghidra::Heritage::refinement().