Package ghidra.program.database.util
Class SynchronizedAddressSetCollection
java.lang.Object
ghidra.program.database.util.SynchronizedAddressSetCollection
- All Implemented Interfaces:
AddressSetCollection
Implementation of AddressSetCollection used by
ProgramChangeSet
. It contains the
actual instances of the addressSets used by the ProgramChangeSet
and protects access
to them by synchronizing on the ProgramChangeSet.
Because these objects use the actual addressSets within the programChangeSet for
efficiency reasons, any changes to those
underlying sets will be reflected in the set of addresses represented by this collection.
But since it is synchronized, you will always get a stable set during any given call and
the AddressSetCollection interface is careful not to include iterator or other methods
that can't tolerate a underlying change. This object is really only intended for use by
the GUI change bars and if it changes, it only results in possibly seeing the changes bars
a bit earlier than otherwise.-
Constructor Summary
ConstructorDescriptionSynchronizedAddressSetCollection
(Object sync, AddressSetView... addressSetViews) -
Method Summary
Modifier and TypeMethodDescriptionboolean
Test if the address is contained within any of the addressSets in this collection.Finds the first address in this collection that is also in the given addressSet.Returns a single AddressSet containing the union of all the addressSetViews in the collection.Returns the largest address in this collection or null if the collection is empty.Returns the smallest address in this collection or null if the collection is empty.boolean
hasFewerRangesThan
(int rangeThreshold) Tests whether this collection of addressSets has approximately fewer ranges than the given threshold.boolean
intersects
(Address start, Address end) Determine if range specified by start and end intersects with any of the AddressSets in this collection.boolean
intersects
(AddressSetView addrSet) Determine if any AddressSet in this collection intersects with the specified address set.boolean
isEmpty()
Returns true if all the AddressSets in this collection are empty.
-
Constructor Details
-
SynchronizedAddressSetCollection
-
-
Method Details
-
intersects
Description copied from interface:AddressSetCollection
Determine if any AddressSet in this collection intersects with the specified address set.- Specified by:
intersects
in interfaceAddressSetCollection
- Parameters:
addrSet
- address set to check intersection with.
-
intersects
Description copied from interface:AddressSetCollection
Determine if range specified by start and end intersects with any of the AddressSets in this collection.- Specified by:
intersects
in interfaceAddressSetCollection
- Parameters:
start
- start of rangeend
- end of range- Returns:
- true if the given range intersects this address set collection.
-
contains
Description copied from interface:AddressSetCollection
Test if the address is contained within any of the addressSets in this collection.- Specified by:
contains
in interfaceAddressSetCollection
- Parameters:
address
- address to test.- Returns:
- true if addr exists in the set, false otherwise.
-
hasFewerRangesThan
public boolean hasFewerRangesThan(int rangeThreshold) Description copied from interface:AddressSetCollection
Tests whether this collection of addressSets has approximately fewer ranges than the given threshold. This is probably estimated by adding up the number of ranges in each AddressSet in this collections. Returns true if the total is less than the given threshold.- Specified by:
hasFewerRangesThan
in interfaceAddressSetCollection
- Parameters:
rangeThreshold
- the number of ranges to test against.- Returns:
- true if the max possible ranges is less than the given threshold.
-
getCombinedAddressSet
Description copied from interface:AddressSetCollection
Returns a single AddressSet containing the union of all the addressSetViews in the collection.- Specified by:
getCombinedAddressSet
in interfaceAddressSetCollection
-
findFirstAddressInCommon
Description copied from interface:AddressSetCollection
Finds the first address in this collection that is also in the given addressSet.- Specified by:
findFirstAddressInCommon
in interfaceAddressSetCollection
- Parameters:
set
- the addressSet to search for the first (lowest) common address.- Returns:
- the first address that is contained in this set and the given set.
-
isEmpty
public boolean isEmpty()Description copied from interface:AddressSetCollection
Returns true if all the AddressSets in this collection are empty.- Specified by:
isEmpty
in interfaceAddressSetCollection
- Returns:
- true if all the AddressSets in this collection are empty.
-
getMinAddress
Description copied from interface:AddressSetCollection
Returns the smallest address in this collection or null if the collection is empty.- Specified by:
getMinAddress
in interfaceAddressSetCollection
- Returns:
- the smallest address in this collection or null if the collection is empty.
-
getMaxAddress
Description copied from interface:AddressSetCollection
Returns the largest address in this collection or null if the collection is empty.- Specified by:
getMaxAddress
in interfaceAddressSetCollection
- Returns:
- the largest address in this collection or null if the collection is empty.
-