summaryrefslogtreecommitdiff
path: root/src/main/java/cuchaz/enigma/mapping
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/cuchaz/enigma/mapping')
-rw-r--r--src/main/java/cuchaz/enigma/mapping/NameValidator.java4
-rw-r--r--src/main/java/cuchaz/enigma/mapping/TypeDescriptor.java16
-rw-r--r--src/main/java/cuchaz/enigma/mapping/entry/MethodDefEntry.java16
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}