Merge remote-tracking branch 'origin/GT-2966_ryanmkurtz_SymbolType'

This commit is contained in:
Ryan Kurtz 2019-07-02 16:21:47 -04:00
commit 8dd453dc2e
59 changed files with 149 additions and 145 deletions

View File

@ -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());
}

View File

@ -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;
}

View File

@ -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
}
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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);
}

View File

@ -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 =

View File

@ -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

View File

@ -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()) {

View File

@ -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;
}

View File

@ -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();

View File

@ -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;
}
}

View File

@ -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)) {

View File

@ -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;

View File

@ -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 {

View File

@ -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);
}
}

View File

@ -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();
}

View File

@ -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);

View File

@ -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);
}

View File

@ -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;

View File

@ -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();
}

View File

@ -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

View File

@ -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
}

View File

@ -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)) {

View File

@ -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

View File

@ -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

View File

@ -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();

View File

@ -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

View File

@ -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;
}
}

View File

@ -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;

View File

@ -128,7 +128,7 @@ class SymbolTableXmlMgr {
continue;
}
if (symbolType != SymbolType.CODE && symbolType != SymbolType.FUNCTION) {
if (symbolType != SymbolType.LABEL && symbolType != SymbolType.FUNCTION) {
continue;
}

View File

@ -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);
}

View File

@ -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);

View File

@ -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);

View File

@ -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));

View File

@ -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);
}
}

View File

@ -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) {

View File

@ -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());
}

View File

@ -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);

View File

@ -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());

View File

@ -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);

View File

@ -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());

View File

@ -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) {

View File

@ -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());
}

View File

@ -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);
}

View File

@ -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) {

View File

@ -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();

View File

@ -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;

View File

@ -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);
}

View File

@ -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");

View File

@ -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,

View File

@ -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);
}
}

View File

@ -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());

View File

@ -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) {

View File

@ -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;

View File

@ -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";
}

View File

@ -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");
}
}

View File

@ -148,7 +148,7 @@ public class ProgramUtilities {
}
try {
if (s.getSymbolType() != SymbolType.CODE) {
if (s.getSymbolType() != SymbolType.LABEL) {
functionSymbol.delete();
return;
}

View File

@ -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;
}