IDAPython 9.0
Loading...
Searching...
No Matches
rangeset_t Class Reference
Inheritance diagram for rangeset_t:

Public Member Functions

 __init__ (self, *args)
 
None swap (self, 'rangeset_t' r)
 
bool add (self, *args)
 
bool sub (self, *args)
 
bool includes (self, 'range_t' range)
 
'range_t const &' getrange (self, int idx)
 
'range_t const &' lastrange (self)
 
'size_t' nranges (self)
 
bool empty (self)
 
None clear (self)
 
bool has_common (self, *args)
 
bool contains (self, *args)
 
bool intersect (self, 'rangeset_t' aset)
 
bool is_subset_of (self, 'rangeset_t' aset)
 
bool is_equal (self, 'rangeset_t' aset)
 
bool __eq__ (self, 'rangeset_t' aset)
 
bool __ne__ (self, 'rangeset_t' aset)
 
'rangeset_t::iterator' begin (self)
 
'rangeset_t::iterator' end (self)
 
'range_t const *' find_range (self, ida_idaapi.ea_t ea)
 
'range_t const *' cached_range (self)
 
ida_idaapi.ea_t next_addr (self, ida_idaapi.ea_t ea)
 
ida_idaapi.ea_t prev_addr (self, ida_idaapi.ea_t ea)
 
ida_idaapi.ea_t next_range (self, ida_idaapi.ea_t ea)
 
ida_idaapi.ea_t prev_range (self, ida_idaapi.ea_t ea)
 
 __getitem__ (self, idx)
 

Protected Member Functions

'size_t' _print (self, *args)
 

Properties

 thisown
 

Constructor & Destructor Documentation

◆ __init__()

__init__ ( self,
* args )

Member Function Documentation

◆ __eq__()

bool __eq__ ( self,
'rangeset_t' aset )

◆ __getitem__()

__getitem__ ( self,
idx )

◆ __ne__()

bool __ne__ ( self,
'rangeset_t' aset )

◆ _print()

'size_t' _print ( self,
* args )
protected

◆ add()

bool add ( self,
* args )
This function has the following signatures:

0. add(range: const range_t &) -> bool
1. add(start: ida_idaapi.ea_t, _end: ida_idaapi.ea_t) -> bool
2. add(aset: const rangeset_t &) -> bool

# 0: add(range: const range_t &) -> bool

Add an address range to the set. If 'range' intersects an existing element e, then e is extended to include 'range', and any superfluous elements (subsets of e) are removed. 

@returns false if 'range' was not added (the set was unchanged)

# 1: add(start: ida_idaapi.ea_t, _end: ida_idaapi.ea_t) -> bool

Create a new range_t from 'start' and 'end' and add it to the set.


# 2: add(aset: const rangeset_t &) -> bool

Add each element of 'aset' to the set. 

@returns false if no elements were added (the set was unchanged)

◆ begin()

'rangeset_t.iterator' begin ( self)
Get an iterator that points to the first element in the set.

◆ cached_range()

'range_t const *' cached_range ( self)
When searching the rangeset, we keep a cached element to help speed up searches. 

@returns a pointer to the cached element

◆ clear()

None clear ( self)
Delete all elements from the set. See qvector::clear()

◆ contains()

bool contains ( self,
* args )
This function has the following signatures:

0. contains(ea: ida_idaapi.ea_t) -> bool
1. contains(aset: const rangeset_t &) -> bool

# 0: contains(ea: ida_idaapi.ea_t) -> bool

Does an element of the rangeset contain 'ea'? See range_t::contains(ea_t)


# 1: contains(aset: const rangeset_t &) -> bool

Is every element in 'aset' contained in an element of this rangeset?. See range_t::contains(range_t)

◆ empty()

bool empty ( self)
Does the set have zero elements.

◆ end()

'rangeset_t.iterator' end ( self)
Get an iterator that points to the end of the set. (This is NOT the last element)

◆ find_range()

'range_t const *' find_range ( self,
ida_idaapi.ea_t ea )
Get the element from the set that contains 'ea'. 

@returns nullptr if there is no such element

◆ getrange()

'range_t const &' getrange ( self,
int idx )
Get the range_t at index 'idx'.

◆ has_common()

bool has_common ( self,
* args )
This function has the following signatures:

0. has_common(range: const range_t &) -> bool
1. has_common(aset: const rangeset_t &) -> bool

# 0: has_common(range: const range_t &) -> bool

Is there an ea in 'range' that is also in the rangeset?


# 1: has_common(aset: const rangeset_t &) -> bool

Does any element of 'aset' overlap with an element in this rangeset?. See range_t::overlaps()

◆ includes()

bool includes ( self,
'range_t' range )
Is every ea in 'range' contained in the rangeset?

◆ intersect()

bool intersect ( self,
'rangeset_t' aset )
Set the rangeset to its intersection with 'aset'. 

@returns false if the set was unchanged

◆ is_equal()

bool is_equal ( self,
'rangeset_t' aset )
Do this rangeset and 'aset' have identical elements?

◆ is_subset_of()

bool is_subset_of ( self,
'rangeset_t' aset )
Is every element in the rangeset contained in an element of 'aset'?

◆ lastrange()

'range_t const &' lastrange ( self)
Get the last range_t in the set.

◆ next_addr()

ida_idaapi.ea_t next_addr ( self,
ida_idaapi.ea_t ea )
Get the smallest ea_t value greater than 'ea' contained in the rangeset.

◆ next_range()

ida_idaapi.ea_t next_range ( self,
ida_idaapi.ea_t ea )
Get the smallest ea_t value greater than 'ea' that is not in the same range as 'ea'.

◆ nranges()

'size_t' nranges ( self)
Get the number of range_t elements in the set.

◆ prev_addr()

ida_idaapi.ea_t prev_addr ( self,
ida_idaapi.ea_t ea )
Get the largest ea_t value less than 'ea' contained in the rangeset.

◆ prev_range()

ida_idaapi.ea_t prev_range ( self,
ida_idaapi.ea_t ea )
Get the largest ea_t value less than 'ea' that is not in the same range as 'ea'.

◆ sub()

bool sub ( self,
* args )
This function has the following signatures:

0. sub(range: const range_t &) -> bool
1. sub(ea: ida_idaapi.ea_t) -> bool
2. sub(aset: const rangeset_t &) -> bool

# 0: sub(range: const range_t &) -> bool

Subtract an address range from the set. All subsets of 'range' will be removed, and all elements that intersect 'range' will be truncated/split so they do not include 'range'. 

@returns false if 'range' was not subtracted (the set was unchanged)

# 1: sub(ea: ida_idaapi.ea_t) -> bool

Subtract an ea (an range of size 1) from the set. See sub(const range_t &)


# 2: sub(aset: const rangeset_t &) -> bool

Subtract each range in 'aset' from the set 

@returns false if nothing was subtracted (the set was unchanged)

◆ swap()

None swap ( self,
'rangeset_t' r )
Set this = 'r' and 'r' = this. See qvector::swap()

Property Documentation

◆ thisown

thisown
static
Initial value:
= property(lambda x: x.this.own(), lambda x, v: x.this.own(v),
doc='The membership flag')

The documentation for this class was generated from the following file: