mirror of
https://codeberg.org/KeybadeBlox/JSRF-Decompilation.git
synced 2026-04-07 04:50:23 +03:00
Support earlier Java releases
Existing code was written for Java 25, which is more recent than many people have on hand. The modified scripts appear to run well on Java 21.
This commit is contained in:
parent
76e7714722
commit
98d88cc212
3 changed files with 22 additions and 25 deletions
|
|
@ -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);
|
||||
};
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue