mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2025-10-04 18:29:37 +02:00
GT-3448_emteere_LargeDisPerf tweak for finding next undefined data
This commit is contained in:
parent
2bbf833332
commit
a9c7e69ac3
2 changed files with 182 additions and 10 deletions
|
@ -474,18 +474,15 @@ public class Disassembler implements DisassemblerConflictHandler {
|
|||
if (data == null) {
|
||||
// no undefined here, skip to next undefined
|
||||
todoSubset.delete(nextAddr, nextAddr);
|
||||
CodeUnitIterator codeUnits = listing.getCodeUnits(todoSubset, true);
|
||||
|
||||
// TODO: investigate, if getUndefinedAfter(), or getUndefinedRanges() is faster
|
||||
for (CodeUnit cu : codeUnits) {
|
||||
if (cu instanceof Data &&
|
||||
((Data) cu).getDataType() instanceof DefaultDataType) {
|
||||
break;
|
||||
}
|
||||
nextAddr = cu.getMinAddress();
|
||||
AddressSetView undefinedRanges = null;
|
||||
try {
|
||||
undefinedRanges =
|
||||
program.getListing().getUndefinedRanges(todoSubset, true, monitor);
|
||||
todoSubset = new AddressSet(undefinedRanges);
|
||||
}
|
||||
if (!todoSubset.isEmpty()) {
|
||||
todoSubset.delete(todoSubset.getMinAddress(), nextAddr);
|
||||
catch (CancelledException e) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
else {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue