diff --git a/ghidra/ghidra_scripts/ClassFixup.java b/ghidra/ghidra_scripts/ClassFixup.java index fa11bc5..d47d5a7 100644 --- a/ghidra/ghidra_scripts/ClassFixup.java +++ b/ghidra/ghidra_scripts/ClassFixup.java @@ -1,4 +1,4 @@ -// Creates classes out namespaces with matching structs, and if they have a +// Creates classes out of namespaces with matching structs, and if they have a // vtable, sets the calling convention of the contained function typdefs to // __thiscall. // diff --git a/ghidra/ghidra_scripts/EnhancedImport.java b/ghidra/ghidra_scripts/EnhancedImport.java index 935ee87..6d1f117 100644 --- a/ghidra/ghidra_scripts/EnhancedImport.java +++ b/ghidra/ghidra_scripts/EnhancedImport.java @@ -20,20 +20,17 @@ import ghidra.program.model.symbol.SourceType; import ghidra.program.model.symbol.Symbol; import ghidra.util.StringUtilities; -import java.io.FileReader; +import java.nio.file.Files; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; import java.util.Optional; - public class EnhancedImport extends GhidraScript { @Override public void run() throws Exception { - final FileReader in = new FileReader(askFile("Select input file", "OK")); - final List lines = in.readAllLines(); - in.close(); + final List lines = Files.readAllLines(askFile("Select input file", "OK").toPath()); for (int i = 0; i < lines.size(); i++) { final String[] parts = lines.get(i).split("\t");; diff --git a/ghidra/ghidra_scripts/MSVC7Mangle.java b/ghidra/ghidra_scripts/MSVC7Mangle.java index f913567..ca55321 100644 --- a/ghidra/ghidra_scripts/MSVC7Mangle.java +++ b/ghidra/ghidra_scripts/MSVC7Mangle.java @@ -422,34 +422,34 @@ public class MSVC7Mangle extends GhidraScript { ); return switch(t) { - case SignedCharDataType _ -> "C"; - case UnsignedCharDataType _ -> "E"; - case CharDataType _ -> "D"; // Must come after its child types - case ShortDataType _ -> "F"; - case UnsignedShortDataType _ -> "G"; - case IntegerDataType _ -> "H"; - case UnsignedIntegerDataType _ -> "I"; - case LongDataType _ -> "J"; - case UnsignedLongDataType _ -> "K"; - case FloatDataType _ -> "M"; - case DoubleDataType _ -> "N"; - case LongDoubleDataType _ -> "O"; + case SignedCharDataType x -> "C"; + case UnsignedCharDataType x -> "E"; + case CharDataType x -> "D"; // Must come after its child types + case ShortDataType x -> "F"; + case UnsignedShortDataType x -> "G"; + case IntegerDataType x -> "H"; + case UnsignedIntegerDataType x -> "I"; + case LongDataType x -> "J"; + case UnsignedLongDataType x -> "K"; + case FloatDataType x -> "M"; + case DoubleDataType x -> "N"; + case LongDoubleDataType x -> "O"; case Pointer p -> "P" + (p.getDataType() instanceof FunctionSignature ? "6" : "A") + mangleType(p.getDataType(), dict, loc); case Union u -> "T" + mangleIdentifier(u.getName(), false, null, dict); case Structure s -> "U" + mangleIdentifier(s.getName(), false, null, dict); case Enum e -> "W4" + mangleIdentifier(e.getName(), false, null, dict); - case VoidDataType _ -> "X"; - case LongLongDataType _ -> "_J"; - case UnsignedLongLongDataType _ -> "_K"; - case BooleanDataType _ -> "_N"; - case WideCharDataType _ -> "_W"; + case VoidDataType x -> "X"; + case LongLongDataType x -> "_J"; + case UnsignedLongLongDataType x -> "_K"; + case BooleanDataType x -> "_N"; + case WideCharDataType x -> "_W"; case Array a -> "PA" + mangleArrDims(a) + mangleType(arrType(a), dict, loc); case FunctionSignature f -> mangleFnType(f, dict, "function typedef \"" + f.getName() + "\""); case TypeDef d -> mangleType(d.getBaseDataType(), dict, "typedef \"" + d.getName() + "\""); - case DefaultDataType _ -> throw new Exception ("Encountered data marked \"undefined\" at " + loc + ". Ensure that all data types in the code/data to mangle have been defined."); - case Undefined _ -> throw new Exception ("Encountered data marked \"undefined\" at " + loc + ". Ensure that all data types in the code/data to mangle have been defined."); + case DefaultDataType x -> throw new Exception ("Encountered data marked \"undefined\" at " + loc + ". Ensure that all data types in the code/data to mangle have been defined."); + case Undefined x -> throw new Exception ("Encountered data marked \"undefined\" at " + loc + ". Ensure that all data types in the code/data to mangle have been defined."); default -> throw new Exception ("Unknown type \"" + t.getClass().getName() + "\" at " + loc); }; }