Class DifferenceAddressSetView
- All Implemented Interfaces:
AddressSetView,Iterable<AddressRange>
AddressSetView defined as the difference between two given
AddressSetViews.
This is equivalent to using AddressSetView.subtract(AddressSetView), but does not
materialize the difference. The choice of one over the other depends on the number of ranges in
the inputs and the frequency of use of the result. With few ranges, or in cases where you need to
access the entire result, anyway, just use the normal AddressRange. In cases with many,
many ranges and where only a small part of the result needs to be computed, use this view. It may
also be advantageous to use this view if the inputs are themselves computed lazily.
-
Constructor Summary
ConstructorsConstructorDescriptionConstruct the difference between two address sets -
Method Summary
Modifier and TypeMethodDescriptionbooleanTest if the address is contained within this set.booleanTest if the given address range is contained in this set.booleancontains(AddressSetView rangeSet) Test if the given address set is a subset of this set.getAddressRanges(boolean forward) Returns an iterator over the ranges in the specified ordergetAddressRanges(Address start, boolean forward) Returns an iterator of address ranges starting with the range that contains the given address.getRangeContaining(Address address) Returns the range that contains the given addressMethods inherited from class ghidra.util.AbstractAddressSetView
findFirstAddressInCommon, fixStart, getAddresses, getAddresses, getFirstRange, getLastRange, getMaxAddress, getMinAddress, getNumAddresses, getNumAddressRanges, hasSameAddresses, intersect, intersectRange, intersects, intersects, isEmpty, iterator, iterator, iterator, subtract, union, xorMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface ghidra.program.model.address.AddressSetView
getAddressCountBefore, spliterator, spliterator, spliterator, stream, stream, stream
-
Constructor Details
-
DifferenceAddressSetView
Construct the difference between two address sets- Parameters:
a- the minuendb- the subtrahend
-
-
Method Details
-
contains
Description copied from interface:AddressSetViewTest if the address is contained within this set.- Parameters:
addr- address to test.- Returns:
- true if addr exists in the set, false otherwise.
-
contains
Description copied from interface:AddressSetViewTest if the given address range is contained in this set.The specified start and end addresses must form a valid range within a single
AddressSpace.- Specified by:
containsin interfaceAddressSetView- Overrides:
containsin classAbstractAddressSetView- Parameters:
start- the first address in the range.end- the last address in the range.- Returns:
- true if entire range is contained within the set, false otherwise.
-
contains
Description copied from interface:AddressSetViewTest if the given address set is a subset of this set.- Specified by:
containsin interfaceAddressSetView- Overrides:
containsin classAbstractAddressSetView- Parameters:
rangeSet- the set to test.- Returns:
- true if the entire set is contained within this set, false otherwise.
-
getAddressRanges
- Returns:
- an iterator over the address ranges in this address set.
-
getAddressRanges
Description copied from interface:AddressSetViewReturns an iterator over the ranges in the specified order- Parameters:
forward- the ranges are returned from lowest to highest, otherwise from highest to lowest- Returns:
- an iterator over all the addresse ranges in the set.
-
getAddressRanges
Description copied from interface:AddressSetViewReturns an iterator of address ranges starting with the range that contains the given address.If there is no range containing the start address, then the first range will be the next range greater than the start address if going forward, otherwise the range less than the start address
- Parameters:
start- the address the first range should contain.forward- true iterators forward, false backwards- Returns:
- the AddressRange iterator
-
getRangeContaining
Description copied from interface:AddressSetViewReturns the range that contains the given address- Specified by:
getRangeContainingin interfaceAddressSetView- Overrides:
getRangeContainingin classAbstractAddressSetView- Parameters:
address- the address for which to find a range.- Returns:
- the range that contains the given address.
-