mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2025-02-18 00:20:10 +00:00
Merge remote-tracking branch 'origin/GT-2966_ryanmkurtz_SymbolType'
This commit is contained in:
commit
8dd453dc2e
@ -40,7 +40,7 @@ public class MakeFuncsAtLabelsScript extends GhidraScript {
|
||||
Listing listing = prog.getListing();
|
||||
for (Symbol symbol : textLabels) {
|
||||
if (symbol.getSource() == SourceType.IMPORTED &&
|
||||
(symbol.getSymbolType() == SymbolType.CODE)) {
|
||||
(symbol.getSymbolType() == SymbolType.LABEL)) {
|
||||
if (!this.isRunningHeadless()) {
|
||||
printf("%s %s", symbol.getAddress().toString(), symbol.toString());
|
||||
}
|
||||
|
@ -90,7 +90,7 @@ public class ApplyFunctionDataTypesCmd extends BackgroundCommand {
|
||||
}
|
||||
else {
|
||||
getSymbols(symbolMap, symbolTable.getSymbols(addresses, SymbolType.FUNCTION, true));
|
||||
getSymbols(symbolMap, symbolTable.getSymbols(addresses, SymbolType.CODE, true));
|
||||
getSymbols(symbolMap, symbolTable.getSymbols(addresses, SymbolType.LABEL, true));
|
||||
}
|
||||
return symbolMap;
|
||||
}
|
||||
|
@ -372,7 +372,7 @@ public class ApplyFunctionSignatureCmd extends BackgroundCommand {
|
||||
Namespace namespace) {
|
||||
Symbol otherSym = symbolTable.getSymbol(name, address, namespace);
|
||||
if (otherSym != null) {
|
||||
if (otherSym.getSymbolType() == SymbolType.CODE) {
|
||||
if (otherSym.getSymbolType() == SymbolType.LABEL) {
|
||||
otherSym.delete(); // replace label if function name matches
|
||||
}
|
||||
}
|
||||
|
@ -100,7 +100,7 @@ public class CreateExternalFunctionCmd implements Command {
|
||||
return createExternalFunction(program);
|
||||
}
|
||||
|
||||
if (!extSymbol.isExternal() || extSymbol.getSymbolType() != SymbolType.CODE) {
|
||||
if (!extSymbol.isExternal() || extSymbol.getSymbolType() != SymbolType.LABEL) {
|
||||
// status = "Invalid symbol specified";
|
||||
return false;
|
||||
}
|
||||
|
@ -640,7 +640,7 @@ public class CreateThunkFunctionCmd extends BackgroundCommand {
|
||||
return null;
|
||||
}
|
||||
Symbol s = symbols[0];
|
||||
if (s.isDynamic() || s.getSymbolType() != SymbolType.CODE ||
|
||||
if (s.isDynamic() || s.getSymbolType() != SymbolType.LABEL ||
|
||||
!s.getParentNamespace().isGlobal()) {
|
||||
return null;
|
||||
}
|
||||
|
@ -255,7 +255,7 @@ public class ExternalFunctionMerger extends AbstractFunctionMerger implements Li
|
||||
}
|
||||
SymbolType symbolType = symbol.getSymbolType();
|
||||
if (symbol.isExternal() &&
|
||||
(symbolType == SymbolType.FUNCTION || symbolType == SymbolType.CODE)) {
|
||||
(symbolType == SymbolType.FUNCTION || symbolType == SymbolType.LABEL)) {
|
||||
|
||||
externalAddSet.add(symbolID);
|
||||
}
|
||||
@ -274,14 +274,14 @@ public class ExternalFunctionMerger extends AbstractFunctionMerger implements Li
|
||||
}
|
||||
SymbolType symbolType = originalSymbol.getSymbolType();
|
||||
if (originalSymbol.isExternal() &&
|
||||
(symbolType == SymbolType.FUNCTION || symbolType == SymbolType.CODE)) {
|
||||
(symbolType == SymbolType.FUNCTION || symbolType == SymbolType.LABEL)) {
|
||||
externalRemoveSet.add(symbolID);
|
||||
}
|
||||
continue;
|
||||
}
|
||||
SymbolType symbolType = symbol.getSymbolType();
|
||||
if (symbol.isExternal() &&
|
||||
(symbolType == SymbolType.FUNCTION || symbolType == SymbolType.CODE)) {
|
||||
(symbolType == SymbolType.FUNCTION || symbolType == SymbolType.LABEL)) {
|
||||
externalModifySet.add(symbolID);
|
||||
}
|
||||
}
|
||||
@ -1565,7 +1565,7 @@ public class ExternalFunctionMerger extends AbstractFunctionMerger implements Li
|
||||
if (latestSymbol != null) {
|
||||
// We have a possible matching external from LATEST.
|
||||
SymbolType symbolType = latestSymbol.getSymbolType();
|
||||
if (symbolType == SymbolType.CODE || symbolType == SymbolType.FUNCTION) {
|
||||
if (symbolType == SymbolType.LABEL || symbolType == SymbolType.FUNCTION) {
|
||||
latestExternalLocation =
|
||||
externalManagers[LATEST].getExternalLocation(latestSymbol);
|
||||
}
|
||||
|
@ -443,7 +443,7 @@ class SymbolMerger extends AbstractListingMerger {
|
||||
Symbol sym = symTab.getSymbol(id);
|
||||
if (sym != null && sym.isPrimary()) {
|
||||
SymbolType symType = sym.getSymbolType();
|
||||
if (((symType == SymbolType.CODE) || (symType == SymbolType.FUNCTION)) &&
|
||||
if (((symType == SymbolType.LABEL) || (symType == SymbolType.FUNCTION)) &&
|
||||
!sym.isExternal()) {
|
||||
primaryAdds.add(id);
|
||||
Address addr = sym.getAddress();
|
||||
@ -796,7 +796,7 @@ class SymbolMerger extends AbstractListingMerger {
|
||||
SymbolType originalType = originalSym.getSymbolType();
|
||||
// CODE, CLASS, EXTERNAL, FUNCTION, GLOBAL, GLOBAL_VAR, LIBRARY,
|
||||
// LOCAL_VAR, NAMESPACE, PARAMETER
|
||||
if ((originalType == SymbolType.CODE && !originalSym.isExternal()) ||
|
||||
if ((originalType == SymbolType.LABEL && !originalSym.isExternal()) ||
|
||||
(originalType == SymbolType.CLASS) || (originalType == SymbolType.NAMESPACE)) {
|
||||
processSingleRemove(id, originalSym);
|
||||
}
|
||||
@ -849,12 +849,12 @@ class SymbolMerger extends AbstractListingMerger {
|
||||
}
|
||||
continue;
|
||||
}
|
||||
else if ((myType != SymbolType.CODE) && (myType != SymbolType.CLASS) &&
|
||||
else if ((myType != SymbolType.LABEL) && (myType != SymbolType.CLASS) &&
|
||||
(myType != SymbolType.NAMESPACE)) {
|
||||
continue;
|
||||
}
|
||||
// Skip external labels since they should have already been handled by ExternalFunctionMerger.
|
||||
if (myType == SymbolType.CODE && mySym.isExternal()) {
|
||||
if (myType == SymbolType.LABEL && mySym.isExternal()) {
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -1100,7 +1100,7 @@ class SymbolMerger extends AbstractListingMerger {
|
||||
// Try to add
|
||||
processAddedFunctionSymbol(mySym);
|
||||
}
|
||||
else if ((myType != SymbolType.CODE) && (myType != SymbolType.CLASS) &&
|
||||
else if ((myType != SymbolType.LABEL) && (myType != SymbolType.CLASS) &&
|
||||
(myType != SymbolType.NAMESPACE)) {
|
||||
continue;
|
||||
}
|
||||
@ -1108,7 +1108,7 @@ class SymbolMerger extends AbstractListingMerger {
|
||||
try {
|
||||
// Try to add
|
||||
SymbolType mySymbolType = mySym.getSymbolType();
|
||||
if (mySym.isExternal() && mySymbolType == SymbolType.CODE) {
|
||||
if (mySym.isExternal() && mySymbolType == SymbolType.LABEL) {
|
||||
continue; // External should have already been handled in ExternalMerger.
|
||||
}
|
||||
addSymbol(mySym);
|
||||
@ -2436,7 +2436,7 @@ class SymbolMerger extends AbstractListingMerger {
|
||||
throws DuplicateNameException, InvalidInputException {
|
||||
// String comment = srcSymbol.getSymbolData3();
|
||||
Symbol symbol = null;
|
||||
if (type == SymbolType.CODE) {
|
||||
if (type == SymbolType.LABEL) {
|
||||
symbol = resultSymTab.createLabel(resultAddr, name, resultParentNs, source);
|
||||
}
|
||||
else if (type == SymbolType.CLASS) {
|
||||
@ -2491,7 +2491,7 @@ class SymbolMerger extends AbstractListingMerger {
|
||||
SymbolType symType = originalSymbol.getSymbolType();
|
||||
String symbolName = originalSymbol.getName();
|
||||
SourceType source = originalSymbol.getSource();
|
||||
if (symType == SymbolType.CODE) {
|
||||
if (symType == SymbolType.LABEL) {
|
||||
if (originalSymbol.isExternal()) {
|
||||
ExternalManager resultExternalManager = resultPgm.getExternalManager();
|
||||
ExternalLocation resultExtLocation =
|
||||
|
@ -110,7 +110,7 @@ public class NoReturnFunctionAnalyzer extends AbstractAnalyzer {
|
||||
}
|
||||
|
||||
Address address = symbol.getAddress();
|
||||
if (symbol.getSymbolType() == SymbolType.CODE) {
|
||||
if (symbol.getSymbolType() == SymbolType.LABEL) {
|
||||
if (!SymbolType.FUNCTION.isValidParent(program, symbol.getParentNamespace(),
|
||||
address, false)) {
|
||||
continue; // skip if parent does not permit function creation
|
||||
|
@ -169,7 +169,7 @@ public class ClearCmd extends BackgroundCommand {
|
||||
if (s.getAddress().compareTo(range.getMaxAddress()) > 0) {
|
||||
break; // done with range
|
||||
}
|
||||
if (s.getSymbolType() != SymbolType.CODE) {
|
||||
if (s.getSymbolType() != SymbolType.LABEL) {
|
||||
continue;
|
||||
}
|
||||
if (s.isPinned()) {
|
||||
|
@ -93,7 +93,7 @@ public class FunctionNameListingHover extends AbstractConfigurableHover
|
||||
Namespace parentScope = symbol.getParentNamespace();
|
||||
SymbolType symbolType = symbol.getSymbolType();
|
||||
|
||||
if (symbolType != SymbolType.CODE) {
|
||||
if (symbolType != SymbolType.LABEL) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -386,7 +386,7 @@ public class EntryPointAnalyzer extends AbstractAnalyzer {
|
||||
private void addCodeSymbolsToSet(Program program, AddressSetView addressSet,
|
||||
TaskMonitor monitor, Set<Address> set) throws CancelledException {
|
||||
SymbolTable symbolTable = program.getSymbolTable();
|
||||
SymbolIterator symbolIter = symbolTable.getSymbols(addressSet, SymbolType.CODE, true);
|
||||
SymbolIterator symbolIter = symbolTable.getSymbols(addressSet, SymbolType.LABEL, true);
|
||||
|
||||
while (symbolIter.hasNext()) {
|
||||
monitor.checkCanceled();
|
||||
|
@ -63,7 +63,7 @@ public class CreateExternalFunctionAction extends ProgramContextAction {
|
||||
refMgr.getPrimaryReferenceFrom(opLoc.getAddress(), opLoc.getOperandIndex());
|
||||
if (ref != null && ref.isExternalReference()) {
|
||||
Symbol s = program.getSymbolTable().getPrimarySymbol(ref.getToAddress());
|
||||
if (s.getSymbolType() == SymbolType.CODE) {
|
||||
if (s.getSymbolType() == SymbolType.LABEL) {
|
||||
return s;
|
||||
}
|
||||
}
|
||||
@ -84,7 +84,7 @@ public class CreateExternalFunctionAction extends ProgramContextAction {
|
||||
return false;
|
||||
}
|
||||
for (Symbol s : symbolContext.getSymbols()) {
|
||||
if (!s.isExternal() || s.getSymbolType() != SymbolType.CODE) {
|
||||
if (!s.isExternal() || s.getSymbolType() != SymbolType.LABEL) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
@ -279,7 +279,7 @@ public class ThunkReferenceAddressDialog extends DialogComponentProvider {
|
||||
while (symbolIterator.hasNext()) {
|
||||
Symbol s = symbolIterator.next();
|
||||
SymbolType type = s.getSymbolType();
|
||||
if (type == SymbolType.FUNCTION || type == SymbolType.CODE) {
|
||||
if (type == SymbolType.FUNCTION || type == SymbolType.LABEL) {
|
||||
Symbol thunkedSymbol = getThunkedSymbol(s);
|
||||
if (thunkedSymbol != null) {
|
||||
// ignore equivalent thunks
|
||||
@ -325,7 +325,7 @@ public class ThunkReferenceAddressDialog extends DialogComponentProvider {
|
||||
ExternalManager externalManager = program.getExternalManager();
|
||||
for (Symbol s : symbolTable.getExternalSymbols()) {
|
||||
SymbolType type = s.getSymbolType();
|
||||
if (type == SymbolType.FUNCTION || type == SymbolType.CODE) {
|
||||
if (type == SymbolType.FUNCTION || type == SymbolType.LABEL) {
|
||||
ExternalLocation externalLocation = externalManager.getExternalLocation(s);
|
||||
String originalName = externalLocation.getOriginalImportedName();
|
||||
if (name.equals(originalName)) {
|
||||
|
@ -78,7 +78,7 @@ public class EditExternalLabelAction extends ListingContextAction {
|
||||
if (s == null || !s.isExternal()) {
|
||||
return null;
|
||||
}
|
||||
if (s.getSymbolType() == SymbolType.CODE || s.getSymbolType() == SymbolType.FUNCTION) {
|
||||
if (s.getSymbolType() == SymbolType.LABEL || s.getSymbolType() == SymbolType.FUNCTION) {
|
||||
return s;
|
||||
}
|
||||
return null;
|
||||
|
@ -149,7 +149,7 @@ public class LabelMgrPlugin extends Plugin {
|
||||
|
||||
Symbol s = getSymbol(context);
|
||||
if (s != null) {
|
||||
if (s.getSource() == SourceType.DEFAULT && s.getSymbolType() == SymbolType.CODE) {
|
||||
if (s.getSource() == SourceType.DEFAULT && s.getSymbolType() == SymbolType.LABEL) {
|
||||
getAddEditDialog().addLabel(s.getAddress(), context.getProgram());
|
||||
}
|
||||
else {
|
||||
|
@ -263,7 +263,7 @@ public class ProgramManagerPlugin extends Plugin implements ProgramManager {
|
||||
if (type == SymbolType.FUNCTION) {
|
||||
loc = new FunctionSignatureFieldLocation(sym.getProgram(), sym.getAddress());
|
||||
}
|
||||
else if (type == SymbolType.CODE) {
|
||||
else if (type == SymbolType.LABEL) {
|
||||
loc = new LabelFieldLocation(sym);
|
||||
}
|
||||
}
|
||||
|
@ -198,7 +198,7 @@ public class StackEditorProvider extends CompositeEditorProvider implements Doma
|
||||
case ChangeManager.DOCR_SYMBOL_DATA_CHANGED:
|
||||
Symbol sym = (Symbol) ((ProgramChangeRecord) rec).getObject();
|
||||
SymbolType symType = sym.getSymbolType();
|
||||
if (symType == SymbolType.CODE) {
|
||||
if (symType == SymbolType.LABEL) {
|
||||
if (sym.isPrimary() && sym.getAddress().equals(function.getEntryPoint())) {
|
||||
refreshName();
|
||||
}
|
||||
@ -218,7 +218,7 @@ public class StackEditorProvider extends CompositeEditorProvider implements Doma
|
||||
case ChangeManager.DOCR_SYMBOL_SET_AS_PRIMARY:
|
||||
sym = (Symbol) ((ProgramChangeRecord) rec).getObject();
|
||||
symType = sym.getSymbolType();
|
||||
if (symType == SymbolType.CODE &&
|
||||
if (symType == SymbolType.LABEL &&
|
||||
sym.getAddress().equals(function.getEntryPoint())) {
|
||||
refreshName();
|
||||
}
|
||||
|
@ -1,6 +1,5 @@
|
||||
/* ###
|
||||
* IP: GHIDRA
|
||||
* REVIEWED: YES
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@ -21,9 +20,9 @@ import ghidra.program.model.symbol.SymbolType;
|
||||
public class SymbolCategory {
|
||||
|
||||
public static final SymbolCategory FUNCTION_CATEGORY = new SymbolCategory("Functions", SymbolType.FUNCTION);
|
||||
public static final SymbolCategory EXPORTS_CATEGORY = new SymbolCategory("Exports", SymbolType.CODE);
|
||||
public static final SymbolCategory EXPORTS_CATEGORY = new SymbolCategory("Exports", SymbolType.LABEL);
|
||||
public static final SymbolCategory IMPORTS_CATEGORY = new SymbolCategory("Imports", SymbolType.LIBRARY);
|
||||
public static final SymbolCategory LABEL_CATEGORY = new SymbolCategory("Labels", SymbolType.CODE);
|
||||
public static final SymbolCategory LABEL_CATEGORY = new SymbolCategory("Labels", SymbolType.LABEL);
|
||||
public static final SymbolCategory ROOT_CATEGORY = new SymbolCategory("Global", null);
|
||||
public static final SymbolCategory NAMESPACE_CATEGORY = new SymbolCategory("Namespaces", SymbolType.NAMESPACE);
|
||||
public static final SymbolCategory CLASS_CATEGORY = new SymbolCategory("Classes", SymbolType.CLASS);
|
||||
|
@ -357,7 +357,7 @@ public class SymbolTreeProvider extends ComponentProviderAdapter {
|
||||
|
||||
private boolean canReparentSymbol(Symbol symbol) {
|
||||
SymbolType symbolType = symbol.getSymbolType();
|
||||
return (symbolType == SymbolType.CODE) || (symbolType == SymbolType.FUNCTION) ||
|
||||
return (symbolType == SymbolType.LABEL) || (symbolType == SymbolType.FUNCTION) ||
|
||||
(symbolType == SymbolType.NAMESPACE) || (symbolType == SymbolType.CLASS);
|
||||
}
|
||||
|
||||
|
@ -63,7 +63,7 @@ public class EditExternalLocationAction extends DockingAction {
|
||||
if (s == null || !s.isExternal()) {
|
||||
return null;
|
||||
}
|
||||
if (s.getSymbolType() == SymbolType.CODE || s.getSymbolType() == SymbolType.FUNCTION) {
|
||||
if (s.getSymbolType() == SymbolType.LABEL || s.getSymbolType() == SymbolType.FUNCTION) {
|
||||
return s;
|
||||
}
|
||||
return null;
|
||||
|
@ -45,7 +45,7 @@ public class GoToExternalLocationAction extends ProgramSymbolContextAction {
|
||||
if (symbol == null) {
|
||||
return false;
|
||||
}
|
||||
if (symbol.getSymbolType() == SymbolType.CODE ||
|
||||
if (symbol.getSymbolType() == SymbolType.LABEL ||
|
||||
symbol.getSymbolType() == SymbolType.FUNCTION) {
|
||||
return symbol.isExternal();
|
||||
}
|
||||
|
@ -147,7 +147,7 @@ class FunctionCategoryNode extends SymbolCategoryNode {
|
||||
private boolean isVariableParameterOrCodeSymbol(Symbol symbol) {
|
||||
SymbolType symbolType = symbol.getSymbolType();
|
||||
return symbolType.equals(SymbolType.LOCAL_VAR) || symbolType.equals(SymbolType.PARAMETER) ||
|
||||
symbolType.equals(SymbolType.CODE);
|
||||
symbolType.equals(SymbolType.LABEL);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -136,7 +136,7 @@ public class FunctionSymbolNode extends SymbolNode {
|
||||
//@formatter:off
|
||||
return type == SymbolType.PARAMETER ||
|
||||
type == SymbolType.LOCAL_VAR ||
|
||||
type == SymbolType.CODE || // label function namespace
|
||||
type == SymbolType.LABEL || // label function namespace
|
||||
type == SymbolType.NAMESPACE; // namespace in function namespace
|
||||
//@formatter:on
|
||||
}
|
||||
|
@ -185,7 +185,7 @@ public class SymbolNode extends GTreeSlowLoadingNode implements SymbolTreeNode {
|
||||
if (symbolType.equals(SymbolType.CLASS)) {
|
||||
return new ClassSymbolNode(program, symbol);
|
||||
}
|
||||
else if (symbolType.equals(SymbolType.CODE)) {
|
||||
else if (symbolType.equals(SymbolType.LABEL)) {
|
||||
return new CodeSymbolNode(program, symbol);
|
||||
}
|
||||
else if (symbolType.equals(SymbolType.FUNCTION)) {
|
||||
|
@ -89,7 +89,7 @@ public class SymbolTreeRootNode extends SymbolCategoryNode implements GTreeRootN
|
||||
else if (type == LIBRARY || type == NAMESPACE) {
|
||||
return findNamespaceSymbol(key, loadChildren, monitor);
|
||||
}
|
||||
else if (type == CODE) {
|
||||
else if (type == LABEL) {
|
||||
return findCodeSymbol(key, loadChildren, monitor);
|
||||
}
|
||||
//else { GLOBAL, GLOBAL_VAR } // not sure where these end up
|
||||
|
@ -405,7 +405,7 @@ public class NewSymbolFilter implements SymbolFilter {
|
||||
Filter instructionFilter = new Filter("Instruction Labels", true, true) {
|
||||
@Override
|
||||
boolean matches(Program program, Symbol symbol) {
|
||||
if (symbol.getSymbolType() == SymbolType.CODE && !symbol.isExternal()) {
|
||||
if (symbol.getSymbolType() == SymbolType.LABEL && !symbol.isExternal()) {
|
||||
Listing l = program.getListing();
|
||||
Address addr = symbol.getAddress();
|
||||
CodeUnit cu = l.getCodeUnitContaining(addr);
|
||||
@ -428,7 +428,7 @@ public class NewSymbolFilter implements SymbolFilter {
|
||||
Filter dataFilter = new Filter("Data Labels", true, true) {
|
||||
@Override
|
||||
boolean matches(Program program, Symbol symbol) {
|
||||
if (symbol.getSymbolType() == SymbolType.CODE) {
|
||||
if (symbol.getSymbolType() == SymbolType.LABEL) {
|
||||
if (symbol.isExternal()) {
|
||||
return true;
|
||||
}
|
||||
@ -455,7 +455,7 @@ public class NewSymbolFilter implements SymbolFilter {
|
||||
Filter functionFilter = new Filter("Function Labels", false, true) {
|
||||
@Override
|
||||
boolean matches(Program program, Symbol symbol) {
|
||||
if (symbol.getSymbolType() == SymbolType.CODE && !symbol.isExternal()) {
|
||||
if (symbol.getSymbolType() == SymbolType.LABEL && !symbol.isExternal()) {
|
||||
return program.getFunctionManager().getFunctionAt(symbol.getAddress()) != null;
|
||||
}
|
||||
return (symbol.getSymbolType() == SymbolType.FUNCTION);
|
||||
@ -599,7 +599,7 @@ public class NewSymbolFilter implements SymbolFilter {
|
||||
@Override
|
||||
boolean isApplicable(Symbol symbol) {
|
||||
SymbolType type = symbol.getSymbolType();
|
||||
return type == SymbolType.CODE || type == SymbolType.CLASS ||
|
||||
return type == SymbolType.LABEL || type == SymbolType.CLASS ||
|
||||
type == SymbolType.FUNCTION || type == SymbolType.NAMESPACE ||
|
||||
type == SymbolType.PARAMETER || type == SymbolType.LOCAL_VAR;
|
||||
}
|
||||
@ -627,7 +627,7 @@ public class NewSymbolFilter implements SymbolFilter {
|
||||
@Override
|
||||
boolean isApplicable(Symbol symbol) {
|
||||
SymbolType type = symbol.getSymbolType();
|
||||
return type == SymbolType.CODE || type == SymbolType.CLASS ||
|
||||
return type == SymbolType.LABEL || type == SymbolType.CLASS ||
|
||||
type == SymbolType.FUNCTION || type == SymbolType.NAMESPACE ||
|
||||
type == SymbolType.PARAMETER || type == SymbolType.LOCAL_VAR;
|
||||
}
|
||||
@ -655,7 +655,7 @@ public class NewSymbolFilter implements SymbolFilter {
|
||||
@Override
|
||||
boolean isApplicable(Symbol symbol) {
|
||||
SymbolType type = symbol.getSymbolType();
|
||||
return type == SymbolType.CODE || type == SymbolType.CLASS ||
|
||||
return type == SymbolType.LABEL || type == SymbolType.CLASS ||
|
||||
type == SymbolType.FUNCTION || type == SymbolType.NAMESPACE;
|
||||
}
|
||||
|
||||
@ -681,7 +681,7 @@ public class NewSymbolFilter implements SymbolFilter {
|
||||
@Override
|
||||
boolean isApplicable(Symbol symbol) {
|
||||
SymbolType type = symbol.getSymbolType();
|
||||
return type == SymbolType.CODE || type == SymbolType.CLASS ||
|
||||
return type == SymbolType.LABEL || type == SymbolType.CLASS ||
|
||||
type == SymbolType.FUNCTION || type == SymbolType.NAMESPACE;
|
||||
}
|
||||
|
||||
@ -707,7 +707,7 @@ public class NewSymbolFilter implements SymbolFilter {
|
||||
@Override
|
||||
boolean isApplicable(Symbol symbol) {
|
||||
SymbolType type = symbol.getSymbolType();
|
||||
return type == SymbolType.CODE;
|
||||
return type == SymbolType.LABEL;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -729,7 +729,7 @@ public class NewSymbolFilter implements SymbolFilter {
|
||||
@Override
|
||||
boolean isApplicable(Symbol symbol) {
|
||||
SymbolType type = symbol.getSymbolType();
|
||||
return type == SymbolType.CODE || type == SymbolType.FUNCTION;
|
||||
return type == SymbolType.LABEL || type == SymbolType.FUNCTION;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -756,7 +756,7 @@ public class NewSymbolFilter implements SymbolFilter {
|
||||
@Override
|
||||
boolean isApplicable(Symbol symbol) {
|
||||
SymbolType type = symbol.getSymbolType();
|
||||
return type == SymbolType.CODE || type == SymbolType.FUNCTION;
|
||||
return type == SymbolType.LABEL || type == SymbolType.FUNCTION;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -778,7 +778,7 @@ public class NewSymbolFilter implements SymbolFilter {
|
||||
@Override
|
||||
boolean isApplicable(Symbol symbol) {
|
||||
SymbolType type = symbol.getSymbolType();
|
||||
return type == SymbolType.CODE || type == SymbolType.FUNCTION;
|
||||
return type == SymbolType.LABEL || type == SymbolType.FUNCTION;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -806,7 +806,7 @@ public class NewSymbolFilter implements SymbolFilter {
|
||||
@Override
|
||||
boolean isApplicable(Symbol symbol) {
|
||||
SymbolType type = symbol.getSymbolType();
|
||||
return type == SymbolType.CODE;
|
||||
return type == SymbolType.LABEL;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -826,7 +826,7 @@ public class NewSymbolFilter implements SymbolFilter {
|
||||
@Override
|
||||
boolean isApplicable(Symbol symbol) {
|
||||
SymbolType type = symbol.getSymbolType();
|
||||
return type == SymbolType.CODE || type == SymbolType.FUNCTION;
|
||||
return type == SymbolType.LABEL || type == SymbolType.FUNCTION;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -847,7 +847,7 @@ public class NewSymbolFilter implements SymbolFilter {
|
||||
@Override
|
||||
boolean isApplicable(Symbol symbol) {
|
||||
SymbolType type = symbol.getSymbolType();
|
||||
return type == SymbolType.CODE || type == SymbolType.FUNCTION;
|
||||
return type == SymbolType.LABEL || type == SymbolType.FUNCTION;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -699,7 +699,7 @@ class SymbolTableModel extends AddressBasedTableModel<SymbolRowObject> {
|
||||
return null;
|
||||
}
|
||||
SymbolType symbolType = symbol.getSymbolType();
|
||||
if (symbolType != SymbolType.FUNCTION && symbolType != SymbolType.CODE) {
|
||||
if (symbolType != SymbolType.FUNCTION && symbolType != SymbolType.LABEL) {
|
||||
return null;
|
||||
}
|
||||
ExternalManager externalManager = p.getExternalManager();
|
||||
|
@ -159,7 +159,7 @@ public class MatchSymbol {
|
||||
|
||||
final SymbolType symbolType = symbol.getSymbolType();
|
||||
|
||||
if ((symbolType == SymbolType.FUNCTION || symbolType == SymbolType.CODE) &&
|
||||
if ((symbolType == SymbolType.FUNCTION || symbolType == SymbolType.LABEL) &&
|
||||
(set.contains(symbol.getAddress()) || (symbol.isExternal() && includeExternals))) {
|
||||
String name = symbol.getName();
|
||||
if (name.length() >= minSymbolNameLength) {
|
||||
@ -210,7 +210,7 @@ public class MatchSymbol {
|
||||
if (symbol.getSymbolType() == SymbolType.FUNCTION) {
|
||||
return SymbolMatchType.FUNCTION;
|
||||
}
|
||||
if (symbol.getSymbolType() != SymbolType.CODE) {
|
||||
if (symbol.getSymbolType() != SymbolType.LABEL) {
|
||||
return SymbolMatchType.OTHER;
|
||||
}
|
||||
if (symbol.isExternal()) {
|
||||
@ -413,7 +413,7 @@ public class MatchSymbol {
|
||||
}
|
||||
|
||||
public SymbolType getMatchType() {
|
||||
return aSymbol.isFunction ? SymbolType.FUNCTION : SymbolType.CODE;
|
||||
return aSymbol.isFunction ? SymbolType.FUNCTION : SymbolType.LABEL;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -346,7 +346,7 @@ public abstract class DemangledObject {
|
||||
for (Symbol symbol : symbols) {
|
||||
if (symbol.getName().equals(symbolName) && !symbol.getParentNamespace().isGlobal()) {
|
||||
SymbolType symbolType = symbol.getSymbolType();
|
||||
if (symbolType == SymbolType.CODE || symbolType == SymbolType.FUNCTION) {
|
||||
if (symbolType == SymbolType.LABEL || symbolType == SymbolType.FUNCTION) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -392,7 +392,7 @@ public class LabelFieldFactory extends FieldFactory {
|
||||
}
|
||||
Symbol symbol = symbols[symbolIndex];
|
||||
SymbolType symbolType = symbol.getSymbolType();
|
||||
if (symbolType != SymbolType.CODE && symbolType != SymbolType.FUNCTION) {
|
||||
if (symbolType != SymbolType.LABEL && symbolType != SymbolType.FUNCTION) {
|
||||
return null;
|
||||
}
|
||||
return symbol;
|
||||
|
@ -128,7 +128,7 @@ class SymbolTableXmlMgr {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (symbolType != SymbolType.CODE && symbolType != SymbolType.FUNCTION) {
|
||||
if (symbolType != SymbolType.LABEL && symbolType != SymbolType.FUNCTION) {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
@ -683,7 +683,7 @@ public class ProgramDiffDetails {
|
||||
ArrayList<Symbol> list = new ArrayList<>();
|
||||
for (Symbol symbol : originalSymbols) {
|
||||
SymbolType symbolType = symbol.getSymbolType();
|
||||
if (symbolType.equals(SymbolType.FUNCTION) || (symbolType.equals(SymbolType.CODE) &&
|
||||
if (symbolType.equals(SymbolType.FUNCTION) || (symbolType.equals(SymbolType.LABEL) &&
|
||||
!symbol.getSource().equals(SourceType.DEFAULT))) {
|
||||
list.add(symbol);
|
||||
}
|
||||
|
@ -205,7 +205,7 @@ class SymbolMerge {
|
||||
Namespace parentNamespace, SourceType source)
|
||||
throws DuplicateNameException, InvalidInputException {
|
||||
Symbol symbol = null;
|
||||
if (type == SymbolType.CODE) {
|
||||
if (type == SymbolType.LABEL) {
|
||||
if (address.isExternalAddress()) {
|
||||
// FIXME Should this be passing the Namespace?
|
||||
ExternalManagerDB extMgr = (ExternalManagerDB) toProgram.getExternalManager();
|
||||
@ -591,7 +591,7 @@ class SymbolMerge {
|
||||
long oldID) throws InvalidInputException {
|
||||
|
||||
Symbol toSymbol = toSymTab.getSymbol(fromName, entryPoint, toNamespace);
|
||||
if (((toSymbol == null) || !toSymbol.getSymbolType().equals(SymbolType.CODE)) &&
|
||||
if (((toSymbol == null) || !toSymbol.getSymbolType().equals(SymbolType.LABEL)) &&
|
||||
(source != SourceType.DEFAULT)) {
|
||||
if (toSymTab.getSymbol(fromName, entryPoint, toNamespace) == null) {
|
||||
toSymbol = toSymbolTable.createLabel(entryPoint, fromName, toNamespace, source);
|
||||
|
@ -938,7 +938,7 @@ public class ExternalMergerAddTest extends AbstractExternalMergerTest {
|
||||
Symbol blueConflict = getUniqueSymbol(resultProgram, label + "_conflict1", externalLibrary);
|
||||
assertNotNull(blue);
|
||||
assertNull(blueConflict);
|
||||
assertEquals(SymbolType.CODE, blue.getSymbolType());
|
||||
assertEquals(SymbolType.LABEL, blue.getSymbolType());
|
||||
assertTrue(blue.isExternal());
|
||||
ExternalLocation externalLocation1 = externalManager.getExternalLocation(blue);
|
||||
assertEquals(libname, externalLocation1.getLibraryName());
|
||||
@ -1013,7 +1013,7 @@ public class ExternalMergerAddTest extends AbstractExternalMergerTest {
|
||||
Symbol blueConflict = getUniqueSymbol(resultProgram, label + "_conflict1", externalLibrary);
|
||||
assertNotNull(blue);
|
||||
assertNull(blueConflict);
|
||||
assertEquals(SymbolType.CODE, blue.getSymbolType());
|
||||
assertEquals(SymbolType.LABEL, blue.getSymbolType());
|
||||
assertTrue(blue.isExternal());
|
||||
ExternalLocation externalLocation = externalManager.getExternalLocation(blue);
|
||||
assertNotNull(externalLocation);
|
||||
@ -2226,8 +2226,8 @@ public class ExternalMergerAddTest extends AbstractExternalMergerTest {
|
||||
assertNotNull(myNamespace);
|
||||
Symbol apples = getUniqueSymbol(resultProgram, label1, myNamespace);
|
||||
Symbol oranges = getUniqueSymbol(resultProgram, label2, myNamespace);
|
||||
assertEquals(SymbolType.CODE, apples.getSymbolType());
|
||||
assertEquals(SymbolType.CODE, oranges.getSymbolType());
|
||||
assertEquals(SymbolType.LABEL, apples.getSymbolType());
|
||||
assertEquals(SymbolType.LABEL, oranges.getSymbolType());
|
||||
ExternalLocation externalLocation = (ExternalLocation) apples.getObject();
|
||||
assertEquals(label1, externalLocation.getLabel());
|
||||
assertEquals(libname, externalLocation.getLibraryName());
|
||||
@ -2301,7 +2301,7 @@ public class ExternalMergerAddTest extends AbstractExternalMergerTest {
|
||||
assertNotNull(myNamespace);
|
||||
Symbol apples = getUniqueSymbol(resultProgram, label, myNamespace);
|
||||
Symbol applesConflict = getUniqueSymbol(resultProgram, label + "_conflict1", myNamespace);
|
||||
assertEquals(SymbolType.CODE, apples.getSymbolType());
|
||||
assertEquals(SymbolType.LABEL, apples.getSymbolType());
|
||||
assertNull(applesConflict);
|
||||
ExternalLocation externalLocation = (ExternalLocation) apples.getObject();
|
||||
assertEquals(label, externalLocation.getLabel());
|
||||
@ -2366,7 +2366,7 @@ public class ExternalMergerAddTest extends AbstractExternalMergerTest {
|
||||
assertNotNull(myNamespace);
|
||||
Symbol apples = getUniqueSymbol(resultProgram, label, myNamespace);
|
||||
Symbol applesConflict = getUniqueSymbol(resultProgram, label + "_conflict1", myNamespace);
|
||||
assertEquals(SymbolType.CODE, apples.getSymbolType());
|
||||
assertEquals(SymbolType.LABEL, apples.getSymbolType());
|
||||
assertNull(applesConflict);
|
||||
ExternalLocation externalLocation = (ExternalLocation) apples.getObject();
|
||||
assertEquals(label, externalLocation.getLabel());
|
||||
@ -3220,7 +3220,7 @@ public class ExternalMergerAddTest extends AbstractExternalMergerTest {
|
||||
List<Symbol> symbols = symtab.getSymbols(label, externalLibrary);
|
||||
assertEquals(1, symbols.size());
|
||||
Symbol blue = symbols.get(0);
|
||||
assertEquals(SymbolType.CODE, blue.getSymbolType());
|
||||
assertEquals(SymbolType.LABEL, blue.getSymbolType());
|
||||
assertTrue(blue.isExternal());
|
||||
ExternalLocation externalLocation = externalManager.getExternalLocation(blue);
|
||||
assertNotNull(externalLocation);
|
||||
@ -3302,7 +3302,7 @@ public class ExternalMergerAddTest extends AbstractExternalMergerTest {
|
||||
List<Symbol> symbols = symtab.getSymbols(label, externalLibrary);
|
||||
assertEquals(1, symbols.size());
|
||||
Symbol blue = symbols.get(0);
|
||||
assertEquals(SymbolType.CODE, blue.getSymbolType());
|
||||
assertEquals(SymbolType.LABEL, blue.getSymbolType());
|
||||
assertTrue(blue.isExternal());
|
||||
ExternalLocation externalLocation = externalManager.getExternalLocation(blue);
|
||||
assertNotNull(externalLocation);
|
||||
|
@ -2799,7 +2799,7 @@ public class ExternalMergerTest extends AbstractExternalMergerTest {
|
||||
externalManager.getUniqueExternalLocation("advapi32.dll", "apples");
|
||||
Symbol symbol = externalLocation.getSymbol();
|
||||
SymbolType symbolType = symbol.getSymbolType();
|
||||
assertEquals(SymbolType.CODE, symbolType);
|
||||
assertEquals(SymbolType.LABEL, symbolType);
|
||||
|
||||
assertNull(functionManager.getFunctionAt(externalSpaceAddress));
|
||||
}
|
||||
@ -2835,7 +2835,7 @@ public class ExternalMergerTest extends AbstractExternalMergerTest {
|
||||
externalManager.getUniqueExternalLocation("advapi32.dll", "apples");
|
||||
Symbol symbol = externalLocation.getSymbol();
|
||||
SymbolType symbolType = symbol.getSymbolType();
|
||||
assertEquals(SymbolType.CODE, symbolType);
|
||||
assertEquals(SymbolType.LABEL, symbolType);
|
||||
|
||||
assertNull(functionManager.getFunctionAt(externalSpaceAddress));
|
||||
}
|
||||
@ -2849,7 +2849,7 @@ public class ExternalMergerTest extends AbstractExternalMergerTest {
|
||||
Symbol symbol = externalLocation.getSymbol();
|
||||
assertNull(externalLocation.getFunction());
|
||||
SymbolType symbolType = symbol.getSymbolType();
|
||||
assertEquals(SymbolType.CODE, symbolType);
|
||||
assertEquals(SymbolType.LABEL, symbolType);
|
||||
Address externalSpaceAddress = externalLocation.getExternalSpaceAddress();
|
||||
assertNotNull(externalSpaceAddress);
|
||||
|
||||
@ -2860,7 +2860,7 @@ public class ExternalMergerTest extends AbstractExternalMergerTest {
|
||||
symbol = externalLocation.getSymbol();
|
||||
assertNull(externalLocation.getFunction());
|
||||
symbolType = symbol.getSymbolType();
|
||||
assertEquals(SymbolType.CODE, symbolType);
|
||||
assertEquals(SymbolType.LABEL, symbolType);
|
||||
|
||||
FunctionManager functionManager = resultProgram.getFunctionManager();
|
||||
assertNull(functionManager.getFunctionAt(externalSpaceAddress));
|
||||
|
@ -168,7 +168,7 @@ public class SymbolTreePlugin1Test extends AbstractGhidraHeadedIntegrationTest {
|
||||
util.selectNode(fNode);
|
||||
|
||||
Symbol extSym = ((SymbolNode) fNode).getSymbol();
|
||||
assertEquals(SymbolType.CODE, extSym.getSymbolType());
|
||||
assertEquals(SymbolType.LABEL, extSym.getSymbolType());
|
||||
assertTrue(extSym.isExternal());
|
||||
assertNotNull(extSym);
|
||||
assertEquals("IsTextUnicode", extSym.getName());
|
||||
@ -866,7 +866,7 @@ public class SymbolTreePlugin1Test extends AbstractGhidraHeadedIntegrationTest {
|
||||
while (it.hasNext()) {
|
||||
Symbol s = it.next();
|
||||
if (s.getSymbolType() == type) {
|
||||
if (type != SymbolType.CODE || s.isGlobal()) {
|
||||
if (type != SymbolType.LABEL || s.isGlobal()) {
|
||||
list.add(s);
|
||||
}
|
||||
}
|
||||
|
@ -73,7 +73,7 @@ public class ExternalFunctionDBTest extends AbstractGhidraHeadedIntegrationTest
|
||||
extMgr.addExtLocation("TestLibrary", name, null, SourceType.USER_DEFINED);
|
||||
Symbol extSym = extLoc.getSymbol();
|
||||
assertNotNull(extSym);
|
||||
assertEquals(SymbolType.CODE, extSym.getSymbolType());
|
||||
assertEquals(SymbolType.LABEL, extSym.getSymbolType());
|
||||
assertEquals(extLoc, extSym.getObject());
|
||||
assertNull(extLoc.getFunction());
|
||||
|
||||
@ -234,7 +234,7 @@ public class ExternalFunctionDBTest extends AbstractGhidraHeadedIntegrationTest
|
||||
program.getExternalManager().getUniqueExternalLocation(parentNamespace, "foo");
|
||||
assertNotNull(externalLocation);
|
||||
assertTrue(!externalLocation.isFunction());
|
||||
assertEquals(SymbolType.CODE, externalLocation.getSymbol().getSymbolType());
|
||||
assertEquals(SymbolType.LABEL, externalLocation.getSymbol().getSymbolType());
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -250,7 +250,7 @@ public class ExternalFunctionDBTest extends AbstractGhidraHeadedIntegrationTest
|
||||
program.getExternalManager().getUniqueExternalLocation(parentNamespace, "EXT_00001000");
|
||||
assertNotNull(externalLocation);
|
||||
assertTrue(!externalLocation.isFunction());
|
||||
assertEquals(SymbolType.CODE, externalLocation.getSymbol().getSymbolType());
|
||||
assertEquals(SymbolType.LABEL, externalLocation.getSymbol().getSymbolType());
|
||||
}
|
||||
|
||||
private Address addr(long offset) {
|
||||
|
@ -69,7 +69,7 @@ public class PinnedSymbolTest extends AbstractGhidraHeadlessIntegrationTest {
|
||||
// check function symbol - function should move, but pinned label should remain.
|
||||
Symbol symbol = symbolTable.getPrimarySymbol(addr(0xc));
|
||||
assertNotNull(symbol);
|
||||
assertEquals(SymbolType.CODE, symbol.getSymbolType());
|
||||
assertEquals(SymbolType.LABEL, symbol.getSymbolType());
|
||||
assertEquals("MyFunction", symbol.getName());
|
||||
symbol = symbolTable.getPrimarySymbol(addr(0x10c));
|
||||
assertNotNull(symbol);
|
||||
@ -100,7 +100,7 @@ public class PinnedSymbolTest extends AbstractGhidraHeadlessIntegrationTest {
|
||||
// check function symbol - function should move, but pinned label should remain.
|
||||
Symbol symbol = symbolTable.getPrimarySymbol(addr(0xc));
|
||||
assertNotNull(symbol);
|
||||
assertEquals(SymbolType.CODE, symbol.getSymbolType());
|
||||
assertEquals(SymbolType.LABEL, symbol.getSymbolType());
|
||||
assertEquals("MyFunction", symbol.getName());
|
||||
symbol = symbolTable.getPrimarySymbol(addr(0x20c));
|
||||
assertNotNull(symbol);
|
||||
@ -128,7 +128,7 @@ public class PinnedSymbolTest extends AbstractGhidraHeadlessIntegrationTest {
|
||||
// check the pinned function symbol is now just a pinned code symbol
|
||||
Symbol symbol = symbolTable.getPrimarySymbol(addr(0xc));
|
||||
assertNotNull(symbol);
|
||||
assertEquals(SymbolType.CODE, symbol.getSymbolType());
|
||||
assertEquals(SymbolType.LABEL, symbol.getSymbolType());
|
||||
assertEquals("MyFunction", symbol.getName());
|
||||
assertTrue(symbol.isPinned());
|
||||
}
|
||||
|
@ -404,7 +404,7 @@ public class SymbolManagerTest extends AbstractGhidraHeadedIntegrationTest {
|
||||
Symbol[] symbols = st.getSymbols(addr);
|
||||
assertEquals(1, symbols.length);
|
||||
assertEquals("lamp", symbols[0].getName());
|
||||
assertEquals(SymbolType.CODE, symbols[0].getSymbolType());
|
||||
assertEquals(SymbolType.LABEL, symbols[0].getSymbolType());
|
||||
assertEquals(false, symbols[0].getSource() == SourceType.DEFAULT);
|
||||
|
||||
st.createLabel(addr, "shade", SourceType.USER_DEFINED);
|
||||
@ -412,10 +412,10 @@ public class SymbolManagerTest extends AbstractGhidraHeadedIntegrationTest {
|
||||
symbols = st.getSymbols(addr);
|
||||
assertEquals(2, symbols.length);
|
||||
assertEquals("lamp", symbols[0].getName());
|
||||
assertEquals(SymbolType.CODE, symbols[0].getSymbolType());
|
||||
assertEquals(SymbolType.LABEL, symbols[0].getSymbolType());
|
||||
assertEquals(false, symbols[0].getSource() == SourceType.DEFAULT);
|
||||
assertEquals("shade", symbols[1].getName());
|
||||
assertEquals(SymbolType.CODE, symbols[1].getSymbolType());
|
||||
assertEquals(SymbolType.LABEL, symbols[1].getSymbolType());
|
||||
assertEquals(false, symbols[1].getSource() == SourceType.DEFAULT);
|
||||
|
||||
}
|
||||
@ -429,7 +429,7 @@ public class SymbolManagerTest extends AbstractGhidraHeadedIntegrationTest {
|
||||
Symbol[] symbols = st.getSymbols(addr);
|
||||
assertEquals(1, symbols.length);
|
||||
assertEquals("LAB_00000200", symbols[0].getName());
|
||||
assertEquals(SymbolType.CODE, symbols[0].getSymbolType());
|
||||
assertEquals(SymbolType.LABEL, symbols[0].getSymbolType());
|
||||
assertEquals(true, symbols[0].getSource() == SourceType.DEFAULT);
|
||||
|
||||
st.createLabel(addr, "lamp", SourceType.USER_DEFINED);
|
||||
@ -437,7 +437,7 @@ public class SymbolManagerTest extends AbstractGhidraHeadedIntegrationTest {
|
||||
symbols = st.getSymbols(addr);
|
||||
assertEquals(1, symbols.length);
|
||||
assertEquals("lamp", symbols[0].getName());
|
||||
assertEquals(SymbolType.CODE, symbols[0].getSymbolType());
|
||||
assertEquals(SymbolType.LABEL, symbols[0].getSymbolType());
|
||||
assertEquals(false, symbols[0].getSource() == SourceType.DEFAULT);
|
||||
|
||||
st.removeSymbolSpecial(symbols[0]);
|
||||
@ -445,7 +445,7 @@ public class SymbolManagerTest extends AbstractGhidraHeadedIntegrationTest {
|
||||
symbols = st.getSymbols(addr);
|
||||
assertEquals(1, symbols.length);
|
||||
assertEquals("LAB_00000200", symbols[0].getName());
|
||||
assertEquals(SymbolType.CODE, symbols[0].getSymbolType());
|
||||
assertEquals(SymbolType.LABEL, symbols[0].getSymbolType());
|
||||
assertEquals(true, symbols[0].getSource() == SourceType.DEFAULT);
|
||||
|
||||
}
|
||||
@ -494,7 +494,7 @@ public class SymbolManagerTest extends AbstractGhidraHeadedIntegrationTest {
|
||||
assertEquals(SymbolType.FUNCTION, symbols[0].getSymbolType());
|
||||
assertEquals(false, symbols[0].getSource() == SourceType.DEFAULT);
|
||||
assertEquals("bar", symbols[1].getName());
|
||||
assertEquals(SymbolType.CODE, symbols[1].getSymbolType());
|
||||
assertEquals(SymbolType.LABEL, symbols[1].getSymbolType());
|
||||
assertEquals(false, symbols[1].getSource() == SourceType.DEFAULT);
|
||||
}
|
||||
|
||||
@ -513,10 +513,10 @@ public class SymbolManagerTest extends AbstractGhidraHeadedIntegrationTest {
|
||||
assertEquals(SymbolType.FUNCTION, symbols[0].getSymbolType());
|
||||
assertEquals(false, symbols[0].getSource() == SourceType.DEFAULT);
|
||||
assertEquals("lamp", symbols[1].getName());
|
||||
assertEquals(SymbolType.CODE, symbols[1].getSymbolType());
|
||||
assertEquals(SymbolType.LABEL, symbols[1].getSymbolType());
|
||||
assertEquals(false, symbols[1].getSource() == SourceType.DEFAULT);
|
||||
assertEquals("shade", symbols[2].getName());
|
||||
assertEquals(SymbolType.CODE, symbols[2].getSymbolType());
|
||||
assertEquals(SymbolType.LABEL, symbols[2].getSymbolType());
|
||||
assertEquals(false, symbols[2].getSource() == SourceType.DEFAULT);
|
||||
|
||||
Function f = program.getFunctionManager().getFunctionAt(addr);
|
||||
@ -530,7 +530,7 @@ public class SymbolManagerTest extends AbstractGhidraHeadedIntegrationTest {
|
||||
assertEquals(SymbolType.FUNCTION, symbols[0].getSymbolType());
|
||||
assertEquals(false, symbols[0].getSource() == SourceType.DEFAULT);
|
||||
assertEquals("shade", symbols[1].getName());
|
||||
assertEquals(SymbolType.CODE, symbols[1].getSymbolType());
|
||||
assertEquals(SymbolType.LABEL, symbols[1].getSymbolType());
|
||||
assertEquals(false, symbols[1].getSource() == SourceType.DEFAULT);
|
||||
|
||||
f = program.getFunctionManager().getFunctionAt(addr);
|
||||
@ -587,7 +587,7 @@ public class SymbolManagerTest extends AbstractGhidraHeadedIntegrationTest {
|
||||
s = st.getPrimarySymbol(addr(0x0200));
|
||||
assertNotNull(s);
|
||||
assertEquals("MyFunction", s.getName());
|
||||
assertEquals(SymbolType.CODE, s.getSymbolType());
|
||||
assertEquals(SymbolType.LABEL, s.getSymbolType());
|
||||
|
||||
boolean removed = st.removeSymbolSpecial(s);
|
||||
assertTrue(removed);// Should be able to remove function symbol after function.
|
||||
@ -615,7 +615,7 @@ public class SymbolManagerTest extends AbstractGhidraHeadedIntegrationTest {
|
||||
assertEquals(SymbolType.FUNCTION, symbols[0].getSymbolType());
|
||||
assertEquals(false, symbols[0].getSource() == SourceType.DEFAULT);
|
||||
assertEquals("Bob", symbols[1].getName());
|
||||
assertEquals(SymbolType.CODE, symbols[1].getSymbolType());
|
||||
assertEquals(SymbolType.LABEL, symbols[1].getSymbolType());
|
||||
assertEquals(false, symbols[1].getSource() == SourceType.DEFAULT);
|
||||
|
||||
st.removeSymbolSpecial(s);
|
||||
@ -656,7 +656,7 @@ public class SymbolManagerTest extends AbstractGhidraHeadedIntegrationTest {
|
||||
assertEquals(oldNamespace, symbols[0].getParentNamespace());
|
||||
assertEquals(false, symbols[0].getSource() == SourceType.DEFAULT);
|
||||
assertEquals("Bob", symbols[1].getName());
|
||||
assertEquals(SymbolType.CODE, symbols[1].getSymbolType());
|
||||
assertEquals(SymbolType.LABEL, symbols[1].getSymbolType());
|
||||
assertEquals(newNamespace, symbols[1].getParentNamespace());
|
||||
assertEquals(false, symbols[1].getSource() == SourceType.DEFAULT);
|
||||
|
||||
|
@ -828,7 +828,7 @@ public class ProgramMerge2Test extends AbstractGhidraHeadedIntegrationTest {
|
||||
Symbol[] syms = st.getSymbols(addr(p1, "0x0100299e"));
|
||||
assertEquals(1, syms.length);
|
||||
assertEquals("SampleLabel", syms[0].getName());
|
||||
assertEquals(SymbolType.CODE, syms[0].getSymbolType());
|
||||
assertEquals(SymbolType.LABEL, syms[0].getSymbolType());
|
||||
assertEquals("MY.DLL", syms[0].getParentNamespace().getName());
|
||||
assertEquals(SymbolType.NAMESPACE,
|
||||
syms[0].getParentNamespace().getSymbol().getSymbolType());
|
||||
@ -1031,7 +1031,7 @@ public class ProgramMerge2Test extends AbstractGhidraHeadedIntegrationTest {
|
||||
assertEquals(SymbolType.NAMESPACE,
|
||||
syms[0].getParentNamespace().getSymbol().getSymbolType());
|
||||
assertEquals("MY.DLL_SampleLabel", syms[1].getName());
|
||||
assertEquals(SymbolType.CODE, syms[1].getSymbolType());
|
||||
assertEquals(SymbolType.LABEL, syms[1].getSymbolType());
|
||||
assertEquals("Global", syms[1].getParentNamespace().getName());
|
||||
assertEquals(SymbolType.GLOBAL,
|
||||
syms[1].getParentNamespace().getSymbol().getSymbolType());
|
||||
@ -1137,7 +1137,7 @@ public class ProgramMerge2Test extends AbstractGhidraHeadedIntegrationTest {
|
||||
assertEquals(SymbolType.NAMESPACE,
|
||||
syms[0].getParentNamespace().getSymbol().getSymbolType());
|
||||
assertEquals("MY.DLL_SampleLabel", syms[1].getName());
|
||||
assertEquals(SymbolType.CODE, syms[1].getSymbolType());
|
||||
assertEquals(SymbolType.LABEL, syms[1].getSymbolType());
|
||||
assertEquals("Global", syms[1].getParentNamespace().getName());
|
||||
assertEquals(SymbolType.GLOBAL,
|
||||
syms[1].getParentNamespace().getSymbol().getSymbolType());
|
||||
@ -1339,7 +1339,7 @@ public class ProgramMerge2Test extends AbstractGhidraHeadedIntegrationTest {
|
||||
assertEquals(SymbolType.GLOBAL,
|
||||
syms[0].getParentNamespace().getSymbol().getSymbolType());
|
||||
assertEquals("SampleLabel", syms[1].getName());
|
||||
assertEquals(SymbolType.CODE, syms[1].getSymbolType());
|
||||
assertEquals(SymbolType.LABEL, syms[1].getSymbolType());
|
||||
assertEquals("MY.DLL", syms[1].getParentNamespace().getName());
|
||||
assertEquals(SymbolType.NAMESPACE,
|
||||
syms[1].getParentNamespace().getSymbol().getSymbolType());
|
||||
@ -1443,7 +1443,7 @@ public class ProgramMerge2Test extends AbstractGhidraHeadedIntegrationTest {
|
||||
assertEquals(SymbolType.NAMESPACE,
|
||||
syms[0].getParentNamespace().getSymbol().getSymbolType());
|
||||
assertEquals("MY.DLL_SampleLabel", syms[1].getName());
|
||||
assertEquals(SymbolType.CODE, syms[1].getSymbolType());
|
||||
assertEquals(SymbolType.LABEL, syms[1].getSymbolType());
|
||||
assertEquals("Global", syms[1].getParentNamespace().getName());
|
||||
assertEquals(SymbolType.GLOBAL,
|
||||
syms[1].getParentNamespace().getSymbol().getSymbolType());
|
||||
|
@ -103,7 +103,7 @@ public class AddLabelCmdTest extends AbstractGenericTest {
|
||||
execute(cmd);
|
||||
Symbol symbol = getUniqueSymbol(notepad, "fred", null);
|
||||
assertNotNull(symbol);
|
||||
assertEquals(SymbolType.CODE, symbol.getSymbolType());
|
||||
assertEquals(SymbolType.LABEL, symbol.getSymbolType());
|
||||
SetLabelPrimaryCmd c =
|
||||
new SetLabelPrimaryCmd(symbol.getAddress(), "fred", symbol.getParentNamespace());
|
||||
execute(c);
|
||||
@ -139,7 +139,7 @@ public class AddLabelCmdTest extends AbstractGenericTest {
|
||||
execute(cmd);
|
||||
Symbol symbol = getUniqueSymbol(notepad, "fred", ns);
|
||||
assertNotNull(symbol);
|
||||
assertEquals(SymbolType.CODE, symbol.getSymbolType());
|
||||
assertEquals(SymbolType.LABEL, symbol.getSymbolType());
|
||||
SetLabelPrimaryCmd c =
|
||||
new SetLabelPrimaryCmd(symbol.getAddress(), "fred", symbol.getParentNamespace());
|
||||
execute(c);
|
||||
|
@ -127,7 +127,7 @@ public class FunctionNameMarkupType extends FunctionEntryPointBasedAbstractMarku
|
||||
SymbolTable symbolTable = destinationProgram.getSymbolTable();
|
||||
Symbol desiredSymbol =
|
||||
symbolTable.getSymbol(destinationName, destinationAddress, destinationNamespace);
|
||||
if (desiredSymbol != null && desiredSymbol.getSymbolType() == SymbolType.CODE) {
|
||||
if (desiredSymbol != null && desiredSymbol.getSymbolType() == SymbolType.LABEL) {
|
||||
SetLabelPrimaryCmd setLabelPrimaryCmd =
|
||||
new SetLabelPrimaryCmd(desiredSymbol.getAddress(), desiredSymbol.getName(),
|
||||
desiredSymbol.getParentNamespace());
|
||||
|
@ -521,7 +521,7 @@ public class FunctionNameMarkupItemTest extends AbstractVTMarkupItemTest {
|
||||
Symbol otherSymbol = symbolTable.getGlobalSymbol(destinationName,
|
||||
getDestinationMatchAddress());
|
||||
assertNotNull(otherSymbol);
|
||||
assertEquals(SymbolType.CODE, otherSymbol.getSymbolType());
|
||||
assertEquals(SymbolType.LABEL, otherSymbol.getSymbolType());
|
||||
assertEquals("Additional label was not applied", destinationName,
|
||||
otherSymbol.getName());
|
||||
}
|
||||
@ -532,7 +532,7 @@ public class FunctionNameMarkupItemTest extends AbstractVTMarkupItemTest {
|
||||
Symbol destinationSymbol =
|
||||
symbolTable.getGlobalSymbol(destinationName, getDestinationMatchAddress());
|
||||
assertNotNull("Expected an additional label", destinationSymbol);
|
||||
assertEquals(SymbolType.CODE, destinationSymbol.getSymbolType());
|
||||
assertEquals(SymbolType.LABEL, destinationSymbol.getSymbolType());
|
||||
}
|
||||
}
|
||||
else if (functionNameChoice == FunctionNameChoices.ADD) {
|
||||
@ -543,7 +543,7 @@ public class FunctionNameMarkupItemTest extends AbstractVTMarkupItemTest {
|
||||
Symbol otherSymbol =
|
||||
symbolTable.getGlobalSymbol(sourceName, getDestinationMatchAddress());
|
||||
assertNotNull(otherSymbol);
|
||||
assertEquals(SymbolType.CODE, otherSymbol.getSymbolType());
|
||||
assertEquals(SymbolType.LABEL, otherSymbol.getSymbolType());
|
||||
}
|
||||
}
|
||||
else if (!sourceIsDefault) {
|
||||
|
@ -555,7 +555,7 @@ public class ExternalManagerDB implements ManagerDB, ExternalManager {
|
||||
*/
|
||||
public static String getDefaultExternalName(SymbolDB sym) {
|
||||
SymbolType type = sym.getSymbolType();
|
||||
if ((type != SymbolType.CODE && type != SymbolType.FUNCTION) || !sym.isExternal()) {
|
||||
if ((type != SymbolType.LABEL && type != SymbolType.FUNCTION) || !sym.isExternal()) {
|
||||
throw new AssertException();
|
||||
}
|
||||
ExternalData3 externalData3 = ExternalLocationDB.getExternalData3(sym);
|
||||
@ -609,7 +609,7 @@ public class ExternalManagerDB implements ManagerDB, ExternalManager {
|
||||
}
|
||||
|
||||
SymbolType symbolType = symbol.getSymbolType();
|
||||
if (symbolType == SymbolType.CODE || symbolType == SymbolType.FUNCTION) {
|
||||
if (symbolType == SymbolType.LABEL || symbolType == SymbolType.FUNCTION) {
|
||||
return getExtLocation(symbol.getAddress());
|
||||
}
|
||||
|
||||
|
@ -2886,7 +2886,7 @@ public class FunctionDB extends DatabaseObject implements Function {
|
||||
checkDeleted();
|
||||
ArrayList<Symbol> list = new ArrayList<>(20);
|
||||
for (Symbol childSymbol : program.getSymbolTable().getSymbols(this)) {
|
||||
if ((childSymbol.getSymbolType() == SymbolType.CODE) &&
|
||||
if ((childSymbol.getSymbolType() == SymbolType.LABEL) &&
|
||||
(childSymbol.getSource() == SourceType.USER_DEFINED)) {
|
||||
list.add(childSymbol);
|
||||
}
|
||||
|
@ -1139,7 +1139,7 @@ public class FunctionManagerDB implements ManagerDB, FunctionManager {
|
||||
|
||||
Symbol functionSymbol = function.getSymbol();
|
||||
ArrayList<Symbol> list = new ArrayList<>();
|
||||
SymbolIterator iter = symbolMgr.getSymbols(set, SymbolType.CODE, true);
|
||||
SymbolIterator iter = symbolMgr.getSymbols(set, SymbolType.LABEL, true);
|
||||
while (iter.hasNext()) {
|
||||
Symbol symbol = iter.next();
|
||||
if (symbol.getParentSymbol() == functionSymbol) {
|
||||
|
@ -1227,7 +1227,7 @@ public class ReferenceDBManager implements ReferenceManager, ManagerDB, ErrorHan
|
||||
if (symbol.isDynamic()) {
|
||||
return;
|
||||
}
|
||||
if (symbol.getSymbolType() != SymbolType.CODE) {
|
||||
if (symbol.getSymbolType() != SymbolType.LABEL) {
|
||||
checkFunctionChange(symbol);
|
||||
return;
|
||||
}
|
||||
@ -1268,7 +1268,7 @@ public class ReferenceDBManager implements ReferenceManager, ManagerDB, ErrorHan
|
||||
*/
|
||||
@Override
|
||||
public void setAssociation(Symbol s, Reference ref) {
|
||||
if (s.getSymbolType() != SymbolType.CODE || s.isDynamic()) {
|
||||
if (s.getSymbolType() != SymbolType.LABEL || s.isDynamic()) {
|
||||
return;
|
||||
}
|
||||
lock.acquire();
|
||||
|
@ -66,7 +66,7 @@ public class CodeSymbol extends SymbolDB {
|
||||
*/
|
||||
@Override
|
||||
public SymbolType getSymbolType() {
|
||||
return SymbolType.CODE;
|
||||
return SymbolType.LABEL;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -217,7 +217,7 @@ public class CodeSymbol extends SymbolDB {
|
||||
*/
|
||||
@Override
|
||||
public boolean isValidParent(Namespace parent) {
|
||||
return SymbolType.CODE.isValidParent(symbolMgr.getProgram(), parent, address, isExternal());
|
||||
return SymbolType.LABEL.isValidParent(symbolMgr.getProgram(), parent, address, isExternal());
|
||||
|
||||
// if (isExternal() != parent.isExternal()) {
|
||||
// return false;
|
||||
|
@ -152,7 +152,7 @@ public class FunctionSymbol extends SymbolDB {
|
||||
SymbolDB newSym;
|
||||
try {
|
||||
newSym = symbolMgr.createSpecialSymbol(entryPoint, symName, namespace,
|
||||
SymbolType.CODE, -1, -1, data3, source);
|
||||
SymbolType.LABEL, -1, -1, data3, source);
|
||||
if (pinned) {
|
||||
newSym.setPinned(true);
|
||||
}
|
||||
|
@ -544,7 +544,7 @@ public abstract class SymbolDB extends DatabaseObject implements Symbol {
|
||||
if (nameChange) {
|
||||
SymbolType symbolType = getSymbolType();
|
||||
if (isExternal() &&
|
||||
(symbolType == SymbolType.FUNCTION || symbolType == SymbolType.CODE)) {
|
||||
(symbolType == SymbolType.FUNCTION || symbolType == SymbolType.LABEL)) {
|
||||
ExternalManagerDB externalManager = symbolMgr.getExternalManager();
|
||||
ExternalLocationDB externalLocation =
|
||||
(ExternalLocationDB) externalManager.getExternalLocation(this);
|
||||
@ -576,7 +576,7 @@ public abstract class SymbolDB extends DatabaseObject implements Symbol {
|
||||
}
|
||||
|
||||
private void checkEditOK() throws InvalidInputException {
|
||||
if (getSymbolType() == SymbolType.CODE) {
|
||||
if (getSymbolType() == SymbolType.LABEL) {
|
||||
for (Register reg : symbolMgr.getProgram().getRegisters(getAddress())) {
|
||||
if (reg.getName().equals(getName())) {
|
||||
throw new InvalidInputException("Register symbol may not be renamed");
|
||||
|
@ -1,6 +1,5 @@
|
||||
/* ###
|
||||
* IP: GHIDRA
|
||||
* REVIEWED: YES
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@ -116,7 +115,7 @@ class SymbolDatabaseAdapterV0 extends SymbolDatabaseAdapter {
|
||||
record.getLongValue(V0_SYMBOL_ADDR_COL));
|
||||
rec.setIntValue(SymbolDatabaseAdapter.SYMBOL_DATA2_COL,
|
||||
record.getBooleanValue(V0_SYMBOL_PRIMARY_COL) ? 1 : 0);
|
||||
rec.setByteValue(SymbolDatabaseAdapter.SYMBOL_TYPE_COL, SymbolType.CODE.getID());
|
||||
rec.setByteValue(SymbolDatabaseAdapter.SYMBOL_TYPE_COL, SymbolType.LABEL.getID());
|
||||
rec.setLongValue(SymbolDatabaseAdapter.SYMBOL_DATA1_COL, -1); // not applicable
|
||||
rec.setLongValue(SymbolDatabaseAdapter.SYMBOL_PARENT_COL, Namespace.GLOBAL_NAMESPACE_ID);
|
||||
rec.setByteValue(SymbolDatabaseAdapter.SYMBOL_FLAGS_COL,
|
||||
|
@ -238,7 +238,7 @@ public class SymbolManager implements SymbolTable, ManagerDB {
|
||||
while (symbolRecordIterator.hasNext()) {
|
||||
monitor.checkCanceled();
|
||||
Record rec = symbolRecordIterator.next();
|
||||
rec.setByteValue(SymbolDatabaseAdapter.SYMBOL_TYPE_COL, SymbolType.CODE.getID());
|
||||
rec.setByteValue(SymbolDatabaseAdapter.SYMBOL_TYPE_COL, SymbolType.LABEL.getID());
|
||||
adapter.updateSymbolRecord(rec);
|
||||
}
|
||||
monitor.setProgress(1);
|
||||
@ -437,7 +437,7 @@ public class SymbolManager implements SymbolTable, ManagerDB {
|
||||
while (!success) {
|
||||
try {
|
||||
addSymbolRecord(rec.getKey(), addr, namespace, name,
|
||||
rec.getBooleanValue(OLD_SYMBOL_IS_PRIMARY_COL), SymbolType.CODE,
|
||||
rec.getBooleanValue(OLD_SYMBOL_IS_PRIMARY_COL), SymbolType.LABEL,
|
||||
SourceType.USER_DEFINED);
|
||||
success = true;
|
||||
}
|
||||
@ -517,7 +517,7 @@ public class SymbolManager implements SymbolTable, ManagerDB {
|
||||
Address address = symbol.getAddress();
|
||||
symbolRemoved(symbol, address, symbol.getName(), oldKey, Namespace.GLOBAL_NAMESPACE_ID,
|
||||
null);
|
||||
Record record = adapter.createSymbol(newName, address, newParentID, SymbolType.CODE, 0,
|
||||
Record record = adapter.createSymbol(newName, address, newParentID, SymbolType.LABEL, 0,
|
||||
1, null, source);
|
||||
symbol.setRecord(record);// symbol object was morphed
|
||||
symbolAdded(symbol);
|
||||
@ -576,7 +576,7 @@ public class SymbolManager implements SymbolTable, ManagerDB {
|
||||
if (type == SymbolType.CLASS) {
|
||||
return new ClassSymbol(this, cache, addr, record);
|
||||
}
|
||||
else if (type == SymbolType.CODE) {
|
||||
else if (type == SymbolType.LABEL) {
|
||||
return new CodeSymbol(this, cache, addr, record);
|
||||
}
|
||||
else if (type == SymbolType.NAMESPACE) {
|
||||
@ -1172,7 +1172,7 @@ public class SymbolManager implements SymbolTable, ManagerDB {
|
||||
public SymbolIterator getPrimarySymbolIterator(AddressSetView set, boolean forward) {
|
||||
Query query1 = new FieldMatchQuery(SymbolDatabaseAdapter.SYMBOL_DATA2_COL, new IntField(1));
|
||||
Query query2 = new FieldMatchQuery(SymbolDatabaseAdapter.SYMBOL_TYPE_COL,
|
||||
new ByteField(SymbolType.CODE.getID()));
|
||||
new ByteField(SymbolType.LABEL.getID()));
|
||||
Query query3 = new FieldMatchQuery(SymbolDatabaseAdapter.SYMBOL_TYPE_COL,
|
||||
new ByteField(SymbolType.FUNCTION.getID()));
|
||||
Query query4 = new AndQuery(query1, query2);
|
||||
@ -1495,7 +1495,7 @@ public class SymbolManager implements SymbolTable, ManagerDB {
|
||||
long parentId, SymbolType symType) {
|
||||
|
||||
// create a label history record
|
||||
if (symType == SymbolType.CODE || symType == SymbolType.FUNCTION) {
|
||||
if (symType == SymbolType.LABEL || symType == SymbolType.FUNCTION) {
|
||||
createLabelHistoryRecord(addr, null, name, LabelHistory.REMOVE);
|
||||
}
|
||||
|
||||
@ -2076,7 +2076,7 @@ public class SymbolManager implements SymbolTable, ManagerDB {
|
||||
typeID != SymbolType.LOCAL_VAR.getID() &&
|
||||
typeID != SymbolType.GLOBAL_VAR.getID()) {
|
||||
|
||||
if (typeID == SymbolType.CODE.getID()) {
|
||||
if (typeID == SymbolType.LABEL.getID()) {
|
||||
// Check for External Code Symbol
|
||||
Address addr = addrMap.decodeAddress(
|
||||
rec.getLongValue(SymbolDatabaseAdapter.SYMBOL_ADDR_COL));
|
||||
@ -2349,9 +2349,9 @@ public class SymbolManager implements SymbolTable, ManagerDB {
|
||||
SourceType source, String data3) throws InvalidInputException {
|
||||
lock.acquire();
|
||||
try {
|
||||
namespace = validateNamespace(namespace, addr, SymbolType.CODE);
|
||||
source = validateSource(source, name, addr, SymbolType.CODE);
|
||||
name = validateName(name, addr, SymbolType.CODE, source);
|
||||
namespace = validateNamespace(namespace, addr, SymbolType.LABEL);
|
||||
source = validateSource(source, name, addr, SymbolType.LABEL);
|
||||
name = validateName(name, addr, SymbolType.LABEL, source);
|
||||
|
||||
Symbol symbol = getSymbol(name, addr, namespace);
|
||||
if (symbol != null) {
|
||||
@ -2372,7 +2372,7 @@ public class SymbolManager implements SymbolTable, ManagerDB {
|
||||
}
|
||||
boolean makePrimary = primary == null;
|
||||
|
||||
return doCreateSymbol(name, addr, namespace, SymbolType.CODE, -1, makePrimary ? 1 : 0,
|
||||
return doCreateSymbol(name, addr, namespace, SymbolType.LABEL, -1, makePrimary ? 1 : 0,
|
||||
data3, source);
|
||||
}
|
||||
finally {
|
||||
@ -2449,7 +2449,7 @@ public class SymbolManager implements SymbolTable, ManagerDB {
|
||||
return null;
|
||||
}
|
||||
// Even though this doesn't change the name or namespace, return this so it will be deleted later.
|
||||
return findMatchingSymbol(symbols, new SymbolMatcher(name, namespace, SymbolType.CODE));
|
||||
return findMatchingSymbol(symbols, new SymbolMatcher(name, namespace, SymbolType.LABEL));
|
||||
}
|
||||
|
||||
private void cleanUpSymbols(Symbol[] symbols, Symbol symbolToPromote) {
|
||||
@ -2595,7 +2595,7 @@ public class SymbolManager implements SymbolTable, ManagerDB {
|
||||
}
|
||||
|
||||
private boolean isExternal(SymbolType type, Address addr, Namespace parentNamespace) {
|
||||
if (type == SymbolType.CODE || type == SymbolType.FUNCTION) {
|
||||
if (type == SymbolType.LABEL || type == SymbolType.FUNCTION) {
|
||||
return addr.isExternalAddress();
|
||||
}
|
||||
return parentNamespace.isExternal();
|
||||
@ -2627,7 +2627,7 @@ public class SymbolManager implements SymbolTable, ManagerDB {
|
||||
List<Symbol> filtered = new ArrayList<>();
|
||||
for (Symbol symbol : symbols) {
|
||||
SymbolType type = symbol.getSymbolType();
|
||||
if (type == SymbolType.FUNCTION || type == SymbolType.CODE) {
|
||||
if (type == SymbolType.FUNCTION || type == SymbolType.LABEL) {
|
||||
filtered.add(symbol);
|
||||
}
|
||||
}
|
||||
|
@ -110,7 +110,7 @@ public class DataTypeSymbol {
|
||||
Symbol sym = iter.next();
|
||||
if (!sym.getName().startsWith(nmroot))
|
||||
continue;
|
||||
if (sym.getSymbolType() != SymbolType.CODE)
|
||||
if (sym.getSymbolType() != SymbolType.LABEL)
|
||||
continue;
|
||||
if (!addr.equals(sym.getAddress()))
|
||||
continue;
|
||||
@ -124,7 +124,7 @@ public class DataTypeSymbol {
|
||||
}
|
||||
|
||||
public static DataTypeSymbol readSymbol(String cat, Symbol s) {
|
||||
if (s.getSymbolType() != SymbolType.CODE) {
|
||||
if (s.getSymbolType() != SymbolType.LABEL) {
|
||||
throw new IllegalArgumentException("Expected CODE symbol");
|
||||
}
|
||||
String hash = extractHash(s.getName());
|
||||
|
@ -184,7 +184,7 @@ public class HighFunction extends PcodeSyntaxTree {
|
||||
}
|
||||
}
|
||||
else if (nm.equals("prt")) {
|
||||
if (sym.getSymbolType() == SymbolType.CODE) {
|
||||
if (sym.getSymbolType() == SymbolType.LABEL) {
|
||||
DataTypeSymbol protover = HighFunctionDBUtil.readOverride(sym);
|
||||
if (protover != null) {
|
||||
if (protoOverrides == null) {
|
||||
|
@ -25,7 +25,7 @@ import ghidra.program.model.listing.Program;
|
||||
*/
|
||||
public abstract class SymbolType {
|
||||
|
||||
public static final SymbolType CODE = new SymbolType("Label", false, 0) {
|
||||
public static final SymbolType LABEL = new SymbolType("Label", false, 0) {
|
||||
@Override
|
||||
public boolean isValidParent(Program program, Namespace parent, Address symbolAddr,
|
||||
boolean isExternalSymbol) {
|
||||
@ -61,6 +61,12 @@ public abstract class SymbolType {
|
||||
|
||||
};
|
||||
|
||||
/**
|
||||
* @deprecated use {@link #LABEL} instead.
|
||||
*/
|
||||
@Deprecated(since = "9.1", forRemoval = true)
|
||||
public static final SymbolType CODE = LABEL;
|
||||
|
||||
public static final SymbolType LIBRARY = new SymbolType("Library", true, 1) {
|
||||
@Override
|
||||
public boolean isValidParent(Program program, Namespace parent, Address symbolAddr,
|
||||
@ -263,7 +269,7 @@ public abstract class SymbolType {
|
||||
};
|
||||
|
||||
private static final SymbolType[] types =
|
||||
{ CODE, LIBRARY, null, NAMESPACE, CLASS, FUNCTION, PARAMETER, LOCAL_VAR, GLOBAL_VAR };
|
||||
{ LABEL, LIBRARY, null, NAMESPACE, CLASS, FUNCTION, PARAMETER, LOCAL_VAR, GLOBAL_VAR };
|
||||
|
||||
private final String name;
|
||||
private final byte value;
|
||||
|
@ -874,7 +874,7 @@ public class SymbolUtilities {
|
||||
}
|
||||
|
||||
SymbolType symType = symbol.getSymbolType();
|
||||
if (symType == SymbolType.CODE) {
|
||||
if (symType == SymbolType.LABEL) {
|
||||
if (symbol.isExternal()) {
|
||||
return "External Data";
|
||||
}
|
||||
|
@ -107,7 +107,7 @@ public class LabelFieldLocation extends CodeUnitLocation {
|
||||
public LabelFieldLocation(Symbol s, int row, int charOffset) {
|
||||
this(s.getProgram(), s.getAddress(), null, s.getName(), s.getParentNamespace(), row,
|
||||
charOffset);
|
||||
if (s.getSymbolType() != SymbolType.CODE && s.getSymbolType() != SymbolType.FUNCTION) {
|
||||
if (s.getSymbolType() != SymbolType.LABEL && s.getSymbolType() != SymbolType.FUNCTION) {
|
||||
throw new IllegalArgumentException("Code symbol expected");
|
||||
}
|
||||
}
|
||||
|
@ -148,7 +148,7 @@ public class ProgramUtilities {
|
||||
}
|
||||
|
||||
try {
|
||||
if (s.getSymbolType() != SymbolType.CODE) {
|
||||
if (s.getSymbolType() != SymbolType.LABEL) {
|
||||
functionSymbol.delete();
|
||||
return;
|
||||
}
|
||||
|
@ -355,7 +355,7 @@ public class SimpleDiffUtility {
|
||||
if (symbolType == SymbolType.FUNCTION) {
|
||||
return getOtherFunctionSymbol(symbol, otherProgram, otherNamespace);
|
||||
}
|
||||
if (symbolType == SymbolType.CODE) {
|
||||
if (symbolType == SymbolType.LABEL) {
|
||||
return getOtherCodeSymbol(symbol, otherProgram, otherNamespace);
|
||||
}
|
||||
// In case any new SymbolTypes get added
|
||||
@ -522,7 +522,7 @@ public class SimpleDiffUtility {
|
||||
return null;
|
||||
}
|
||||
SymbolType type = symbol.getSymbolType();
|
||||
if ((type != SymbolType.FUNCTION && type != SymbolType.CODE) || !symbol.isExternal()) {
|
||||
if ((type != SymbolType.FUNCTION && type != SymbolType.LABEL) || !symbol.isExternal()) {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user