Merge remote-tracking branch 'origin/GP-4337_ryanmkurtz_demangler-null-monitor'

This commit is contained in:
Ryan Kurtz
2024-03-21 08:42:45 -04:00
@@ -46,6 +46,8 @@ public abstract class AbstractDemanglerAnalyzer extends AbstractAnalyzer {
private static final AddressSetView EXTERNAL_SET = new AddressSet( private static final AddressSetView EXTERNAL_SET = new AddressSet(
AddressSpace.EXTERNAL_SPACE.getMinAddress(), AddressSpace.EXTERNAL_SPACE.getMaxAddress()); AddressSpace.EXTERNAL_SPACE.getMinAddress(), AddressSpace.EXTERNAL_SPACE.getMaxAddress());
private String baseMonitorMessage;
public AbstractDemanglerAnalyzer(String name, String description) { public AbstractDemanglerAnalyzer(String name, String description) {
super(name, description, AnalyzerType.BYTE_ANALYZER); super(name, description, AnalyzerType.BYTE_ANALYZER);
setPriority(AnalysisPriority.DATA_TYPE_PROPOGATION.before().before().before()); setPriority(AnalysisPriority.DATA_TYPE_PROPOGATION.before().before().before());
@@ -93,21 +95,21 @@ public abstract class AbstractDemanglerAnalyzer extends AbstractAnalyzer {
set = set.subtract(EXTERNAL_SET); set = set.subtract(EXTERNAL_SET);
} }
String baseMonitorMessage = monitor.getMessage(); if (baseMonitorMessage == null) {
int memorySymbolCount = baseMonitorMessage = monitor.getMessage();
demangleSymbols(program, set, 0, baseMonitorMessage, options, log, monitor); }
int memorySymbolCount = demangleSymbols(program, set, 0, options, log, monitor);
if (demangleExternals) { if (demangleExternals) {
// process external symbols last // process external symbols last
demangleSymbols(program, EXTERNAL_SET, memorySymbolCount, baseMonitorMessage, options, demangleSymbols(program, EXTERNAL_SET, memorySymbolCount, options, log, monitor);
log, monitor);
} }
return true; return true;
} }
private int demangleSymbols(Program program, AddressSetView set, int initialCount, private int demangleSymbols(Program program, AddressSetView set, int initialCount,
String baseMonitorMessage, DemanglerOptions options, MessageLog log, DemanglerOptions options, MessageLog log, TaskMonitor monitor)
TaskMonitor monitor) throws CancelledException { throws CancelledException {
int count = initialCount; int count = initialCount;
SymbolTable symbolTable = program.getSymbolTable(); SymbolTable symbolTable = program.getSymbolTable();