diff options
Diffstat (limited to 'src/main/java/cuchaz/enigma/mapping/entry')
| -rw-r--r-- | src/main/java/cuchaz/enigma/mapping/entry/MethodDefEntry.java | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/main/java/cuchaz/enigma/mapping/entry/MethodDefEntry.java b/src/main/java/cuchaz/enigma/mapping/entry/MethodDefEntry.java index ec3af69..bb7c85e 100644 --- a/src/main/java/cuchaz/enigma/mapping/entry/MethodDefEntry.java +++ b/src/main/java/cuchaz/enigma/mapping/entry/MethodDefEntry.java | |||
| @@ -37,6 +37,16 @@ public class MethodDefEntry extends MethodEntry { | |||
| 37 | return signature; | 37 | return signature; |
| 38 | } | 38 | } |
| 39 | 39 | ||
| 40 | public int getVariableOffset(ClassDefEntry ownerEntry) { | ||
| 41 | // Enum constructors have an implicit "name" and "ordinal" parameter as well as "this" | ||
| 42 | if (ownerEntry.getAccess().isEnum() && getName().startsWith("<")) { | ||
| 43 | return 3; | ||
| 44 | } else { | ||
| 45 | // If we're not static, "this" is bound to index 0 | ||
| 46 | return getAccess().isStatic() ? 0 : 1; | ||
| 47 | } | ||
| 48 | } | ||
| 49 | |||
| 40 | @Override | 50 | @Override |
| 41 | public MethodDefEntry updateOwnership(ClassEntry classEntry) { | 51 | public MethodDefEntry updateOwnership(ClassEntry classEntry) { |
| 42 | return new MethodDefEntry(new ClassEntry(classEntry.getName()), name, descriptor, signature, access); | 52 | return new MethodDefEntry(new ClassEntry(classEntry.getName()), name, descriptor, signature, access); |