Class SymmetricDifferenceAddressSetView
- All Implemented Interfaces:
AddressSetView,Iterable<AddressRange>
AddressSetView defined as the symmetric difference between two given
AddressSetViews.
There is no equivalent method in AddressSetView, but it could be computed using a
combination of AddressSetView.subtract(AddressSetView) and
AddressSetView.union(AddressSetView). However, this class does not materialize the
result. 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 if the inputs are themselves computed lazily.
-
Constructor Summary
ConstructorsConstructorDescriptionConstruct the symmetric difference between two address sets -
Method Summary
Modifier and TypeMethodDescriptionbooleanTest if the address is contained within this set.protected static AddressfixStart(AddressRangeIterator rev, boolean forward) 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 addressprotected static AddressrewindIfBounding(AddressRangeIterator rev, Address start, boolean forward) Methods inherited from class ghidra.util.AbstractAddressSetView
contains, contains, 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
-
SymmetricDifferenceAddressSetView
Construct the symmetric difference between two address sets- Parameters:
a- the first setb- the second set
-
-
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.
-
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.
-
fixStart
-
rewindIfBounding
-
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.
-