mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2026-05-20 19:25:42 +08:00
Merge remote-tracking branch 'origin/GT-2966_ryanmkurtz_SymbolType'
This commit is contained in:
@@ -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());
|
||||
}
|
||||
|
||||
+1
-1
@@ -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;
|
||||
}
|
||||
|
||||
+1
-1
@@ -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
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -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;
|
||||
}
|
||||
|
||||
+1
-1
@@ -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;
|
||||
}
|
||||
|
||||
+4
-4
@@ -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 =
|
||||
|
||||
+1
-1
@@ -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()) {
|
||||
|
||||
+1
-1
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -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();
|
||||
|
||||
+2
-2
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -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)) {
|
||||
|
||||
+1
-1
@@ -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 {
|
||||
|
||||
+1
-1
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -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();
|
||||
}
|
||||
|
||||
+2
-3
@@ -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);
|
||||
|
||||
+1
-1
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -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;
|
||||
|
||||
+1
-1
@@ -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();
|
||||
}
|
||||
|
||||
+1
-1
@@ -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
|
||||
|
||||
+1
-1
@@ -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
|
||||
}
|
||||
|
||||
+1
-1
@@ -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)) {
|
||||
|
||||
+1
-1
@@ -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
|
||||
|
||||
+14
-14
@@ -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
|
||||
|
||||
+1
-1
@@ -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();
|
||||
|
||||
+3
-3
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -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);
|
||||
|
||||
+8
-8
@@ -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);
|
||||
|
||||
+4
-4
@@ -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));
|
||||
|
||||
+2
-2
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
+3
-3
@@ -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) {
|
||||
|
||||
+3
-3
@@ -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());
|
||||
}
|
||||
|
||||
+13
-13
@@ -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);
|
||||
|
||||
+1
-1
@@ -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());
|
||||
|
||||
+3
-3
@@ -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) {
|
||||
|
||||
+2
-2
@@ -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());
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -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);
|
||||
}
|
||||
|
||||
+1
-1
@@ -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) {
|
||||
|
||||
+2
-2
@@ -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();
|
||||
|
||||
+2
-2
@@ -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;
|
||||
|
||||
+1
-1
@@ -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);
|
||||
}
|
||||
|
||||
+2
-2
@@ -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");
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user