diff options
| author | 2018-12-15 22:29:41 +0200 | |
|---|---|---|
| committer | 2018-12-15 21:29:41 +0100 | |
| commit | 4ff89cb1d48cb6916220ee308bf40810cfd868e2 (patch) | |
| tree | 1145080fde3ea6d727848d15994a3b71478ee22f /src/main/java/cuchaz/enigma/mapping | |
| parent | Fix #78 (#85) (diff) | |
| download | enigma-fork-4ff89cb1d48cb6916220ee308bf40810cfd868e2.tar.gz enigma-fork-4ff89cb1d48cb6916220ee308bf40810cfd868e2.tar.xz enigma-fork-4ff89cb1d48cb6916220ee308bf40810cfd868e2.zip | |
Tweak variable name generation (#86)
* Don't apply offset to all methods in abstract class
* Tweak local variable naming
Diffstat (limited to 'src/main/java/cuchaz/enigma/mapping')
3 files changed, 28 insertions, 8 deletions
diff --git a/src/main/java/cuchaz/enigma/mapping/NameValidator.java b/src/main/java/cuchaz/enigma/mapping/NameValidator.java index 9273c9b..fca8cfc 100644 --- a/src/main/java/cuchaz/enigma/mapping/NameValidator.java +++ b/src/main/java/cuchaz/enigma/mapping/NameValidator.java | |||
| @@ -66,4 +66,8 @@ public class NameValidator { | |||
| 66 | public static String validateArgumentName(String name) { | 66 | public static String validateArgumentName(String name) { |
| 67 | return validateFieldName(name); | 67 | return validateFieldName(name); |
| 68 | } | 68 | } |
| 69 | |||
| 70 | public static boolean isReserved(String name) { | ||
| 71 | return ReservedWords.contains(name); | ||
| 72 | } | ||
| 69 | } | 73 | } |
diff --git a/src/main/java/cuchaz/enigma/mapping/TypeDescriptor.java b/src/main/java/cuchaz/enigma/mapping/TypeDescriptor.java index 3c8cc74..6e58aa0 100644 --- a/src/main/java/cuchaz/enigma/mapping/TypeDescriptor.java +++ b/src/main/java/cuchaz/enigma/mapping/TypeDescriptor.java | |||
| @@ -223,14 +223,14 @@ public class TypeDescriptor { | |||
| 223 | } | 223 | } |
| 224 | 224 | ||
| 225 | public enum Primitive { | 225 | public enum Primitive { |
| 226 | Byte('B'), | 226 | BYTE('B'), |
| 227 | Character('C'), | 227 | CHARACTER('C'), |
| 228 | Short('S'), | 228 | SHORT('S'), |
| 229 | Integer('I'), | 229 | INTEGER('I'), |
| 230 | Long('J'), | 230 | LONG('J'), |
| 231 | Float('F'), | 231 | FLOAT('F'), |
| 232 | Double('D'), | 232 | DOUBLE('D'), |
| 233 | Boolean('Z'); | 233 | BOOLEAN('Z'); |
| 234 | 234 | ||
| 235 | private static final Map<Character, Primitive> lookup; | 235 | private static final Map<Character, Primitive> lookup; |
| 236 | 236 | ||
diff --git a/src/main/java/cuchaz/enigma/mapping/entry/MethodDefEntry.java b/src/main/java/cuchaz/enigma/mapping/entry/MethodDefEntry.java index 960b08d..fa9e668 100644 --- a/src/main/java/cuchaz/enigma/mapping/entry/MethodDefEntry.java +++ b/src/main/java/cuchaz/enigma/mapping/entry/MethodDefEntry.java | |||
| @@ -42,4 +42,20 @@ public class MethodDefEntry extends MethodEntry implements DefEntry { | |||
| 42 | public MethodDefEntry updateOwnership(ClassEntry classEntry) { | 42 | public MethodDefEntry updateOwnership(ClassEntry classEntry) { |
| 43 | return new MethodDefEntry(new ClassEntry(classEntry.getName()), name, descriptor, signature, access); | 43 | return new MethodDefEntry(new ClassEntry(classEntry.getName()), name, descriptor, signature, access); |
| 44 | } | 44 | } |
| 45 | |||
| 46 | public int getArgumentIndex(ClassDefEntry ownerEntry, int localVariableIndex) { | ||
| 47 | int argumentIndex = localVariableIndex; | ||
| 48 | |||
| 49 | // Enum constructors have an implicit "name" and "ordinal" parameter as well as "this" | ||
| 50 | if (ownerEntry.getAccess().isEnum() && getName().startsWith("<")) { | ||
| 51 | argumentIndex -= 2; | ||
| 52 | } | ||
| 53 | |||
| 54 | // If we're not static, "this" is bound to index 0 | ||
| 55 | if (!getAccess().isStatic()) { | ||
| 56 | argumentIndex -= 1; | ||
| 57 | } | ||
| 58 | |||
| 59 | return argumentIndex; | ||
| 60 | } | ||
| 45 | } | 61 | } |