Fix for NeLoader handling of external functions

This commit is contained in:
caheckman 2019-09-10 11:06:20 -04:00
parent 15c1f43fa5
commit d7888851d3
5 changed files with 71 additions and 54 deletions

View file

@ -326,7 +326,7 @@ public class FunctionManagerDB implements ManagerDB, FunctionManager {
@Override
public Function createThunkFunction(String name, Namespace nameSpace, Address entryPoint,
AddressSetView body, Function thunkedFunction, SourceType source)
throws DuplicateNameException, OverlappingFunctionException {
throws OverlappingFunctionException {
try {
return createFunction(name, nameSpace, entryPoint, body, thunkedFunction, source);
}

View file

@ -107,13 +107,12 @@ public interface FunctionManager {
* @param thunkedFunction referenced function (required is creating a thunk function)
* @param source the source of this function
* @return new function or null if one or more functions overlap the specified body address set.
* @throws DuplicateNameException if a function with the same thunk name already exists
* @throws OverlappingFunctionException if the address set of the body overlaps an existing
* function
*/
public Function createThunkFunction(String name, Namespace nameSpace, Address entryPoint,
AddressSetView body, Function thunkedFunction, SourceType source)
throws DuplicateNameException, OverlappingFunctionException;
throws OverlappingFunctionException;
/**
* Returns the total number of functions in the program including external functions.

View file

@ -27,7 +27,8 @@ import ghidra.program.model.lang.PrototypeModel;
import ghidra.program.model.listing.*;
import ghidra.program.model.symbol.Namespace;
import ghidra.program.model.symbol.SourceType;
import ghidra.util.exception.*;
import ghidra.util.exception.CancelledException;
import ghidra.util.exception.InvalidInputException;
import ghidra.util.task.TaskMonitor;
public class FunctionManagerTestDouble implements FunctionManager {
@ -73,7 +74,7 @@ public class FunctionManagerTestDouble implements FunctionManager {
@Override
public Function createThunkFunction(String name, Namespace nameSpace, Address entryPoint,
AddressSetView body, Function thunkedFunction, SourceType source)
throws DuplicateNameException, OverlappingFunctionException {
throws OverlappingFunctionException {
throw new UnsupportedOperationException();
}