summaryrefslogtreecommitdiff
path: root/src/main/java/cuchaz/enigma/mapping
diff options
context:
space:
mode:
authorGravatar asie2018-12-08 12:05:28 +0100
committerGravatar asie2018-12-08 12:05:28 +0100
commite8b2d6d19a8e7ee3ab657d5c37776ba03d43ecb7 (patch)
tree228a1974523e23f35dd1216b429ecd5dbb690cd8 /src/main/java/cuchaz/enigma/mapping
parentadd barebones plugin framework, cleanup (diff)
downloadenigma-fork-e8b2d6d19a8e7ee3ab657d5c37776ba03d43ecb7.tar.gz
enigma-fork-e8b2d6d19a8e7ee3ab657d5c37776ba03d43ecb7.tar.xz
enigma-fork-e8b2d6d19a8e7ee3ab657d5c37776ba03d43ecb7.zip
rewrite entry resolution logic in TranslationIndex, hopefully fixing bugs
Diffstat (limited to 'src/main/java/cuchaz/enigma/mapping')
-rw-r--r--src/main/java/cuchaz/enigma/mapping/DirectionalTranslator.java4
-rw-r--r--src/main/java/cuchaz/enigma/mapping/MappingsRenamer.java4
-rw-r--r--src/main/java/cuchaz/enigma/mapping/entry/ClassDefEntry.java3
-rw-r--r--src/main/java/cuchaz/enigma/mapping/entry/DefEntry.java7
-rw-r--r--src/main/java/cuchaz/enigma/mapping/entry/FieldDefEntry.java3
-rw-r--r--src/main/java/cuchaz/enigma/mapping/entry/MethodDefEntry.java3
6 files changed, 17 insertions, 7 deletions
diff --git a/src/main/java/cuchaz/enigma/mapping/DirectionalTranslator.java b/src/main/java/cuchaz/enigma/mapping/DirectionalTranslator.java
index 10fb921..388e7ac 100644
--- a/src/main/java/cuchaz/enigma/mapping/DirectionalTranslator.java
+++ b/src/main/java/cuchaz/enigma/mapping/DirectionalTranslator.java
@@ -131,7 +131,7 @@ public class DirectionalTranslator implements Translator {
131 131
132 private String translateFieldName(FieldEntry entry) { 132 private String translateFieldName(FieldEntry entry) {
133 // resolve the class entry 133 // resolve the class entry
134 ClassEntry resolvedClassEntry = this.index.resolveEntryOwner(entry, true); 134 ClassEntry resolvedClassEntry = this.index.resolveEntryOwner(entry);
135 if (resolvedClassEntry != null) { 135 if (resolvedClassEntry != null) {
136 // look for the class 136 // look for the class
137 ClassMapping classMapping = findClassMapping(resolvedClassEntry); 137 ClassMapping classMapping = findClassMapping(resolvedClassEntry);
@@ -175,7 +175,7 @@ public class DirectionalTranslator implements Translator {
175 175
176 private String translateMethodName(MethodEntry entry) { 176 private String translateMethodName(MethodEntry entry) {
177 // resolve the class entry 177 // resolve the class entry
178 ClassEntry resolvedOwner = this.index.resolveEntryOwner(entry, true); 178 ClassEntry resolvedOwner = this.index.resolveEntryOwner(entry);
179 if (resolvedOwner != null) { 179 if (resolvedOwner != null) {
180 // look for class 180 // look for class
181 ClassMapping classMapping = findClassMapping(resolvedOwner); 181 ClassMapping classMapping = findClassMapping(resolvedOwner);
diff --git a/src/main/java/cuchaz/enigma/mapping/MappingsRenamer.java b/src/main/java/cuchaz/enigma/mapping/MappingsRenamer.java
index 72a12c2..8ef4f12 100644
--- a/src/main/java/cuchaz/enigma/mapping/MappingsRenamer.java
+++ b/src/main/java/cuchaz/enigma/mapping/MappingsRenamer.java
@@ -92,9 +92,9 @@ public class MappingsRenamer {
92 deobfName = NameValidator.validateFieldName(deobfName); 92 deobfName = NameValidator.validateFieldName(deobfName);
93 FieldEntry targetEntry = entryPool.getField(obf.getOwnerClassEntry(), deobfName, obf.getDesc()); 93 FieldEntry targetEntry = entryPool.getField(obf.getOwnerClassEntry(), deobfName, obf.getDesc());
94 ClassEntry definedClass = null; 94 ClassEntry definedClass = null;
95 if (mappings.containsDeobfField(obf.getOwnerClassEntry(), deobfName) || index.containsEntryWithSameName(targetEntry)) 95 if (mappings.containsDeobfField(obf.getOwnerClassEntry(), deobfName) || index.containsEntryWithSameName(targetEntry)) {
96 definedClass = obf.getOwnerClassEntry(); 96 definedClass = obf.getOwnerClassEntry();
97 else { 97 } else {
98 for (ClassEntry ancestorEntry : this.index.getTranslationIndex().getAncestry(obf.getOwnerClassEntry())) { 98 for (ClassEntry ancestorEntry : this.index.getTranslationIndex().getAncestry(obf.getOwnerClassEntry())) {
99 if (mappings.containsDeobfField(ancestorEntry, deobfName) || index.containsEntryWithSameName(targetEntry.updateOwnership(ancestorEntry))) { 99 if (mappings.containsDeobfField(ancestorEntry, deobfName) || index.containsEntryWithSameName(targetEntry.updateOwnership(ancestorEntry))) {
100 definedClass = ancestorEntry; 100 definedClass = ancestorEntry;
diff --git a/src/main/java/cuchaz/enigma/mapping/entry/ClassDefEntry.java b/src/main/java/cuchaz/enigma/mapping/entry/ClassDefEntry.java
index ac1fe2a..df72e7e 100644
--- a/src/main/java/cuchaz/enigma/mapping/entry/ClassDefEntry.java
+++ b/src/main/java/cuchaz/enigma/mapping/entry/ClassDefEntry.java
@@ -15,7 +15,7 @@ import com.google.common.base.Preconditions;
15import cuchaz.enigma.bytecode.AccessFlags; 15import cuchaz.enigma.bytecode.AccessFlags;
16import cuchaz.enigma.mapping.Signature; 16import cuchaz.enigma.mapping.Signature;
17 17
18public class ClassDefEntry extends ClassEntry { 18public class ClassDefEntry extends ClassEntry implements DefEntry {
19 private final AccessFlags access; 19 private final AccessFlags access;
20 private final Signature signature; 20 private final Signature signature;
21 21
@@ -31,6 +31,7 @@ public class ClassDefEntry extends ClassEntry {
31 return signature; 31 return signature;
32 } 32 }
33 33
34 @Override
34 public AccessFlags getAccess() { 35 public AccessFlags getAccess() {
35 return access; 36 return access;
36 } 37 }
diff --git a/src/main/java/cuchaz/enigma/mapping/entry/DefEntry.java b/src/main/java/cuchaz/enigma/mapping/entry/DefEntry.java
new file mode 100644
index 0000000..43ad027
--- /dev/null
+++ b/src/main/java/cuchaz/enigma/mapping/entry/DefEntry.java
@@ -0,0 +1,7 @@
1package cuchaz.enigma.mapping.entry;
2
3import cuchaz.enigma.bytecode.AccessFlags;
4
5public interface DefEntry extends Entry {
6 AccessFlags getAccess();
7}
diff --git a/src/main/java/cuchaz/enigma/mapping/entry/FieldDefEntry.java b/src/main/java/cuchaz/enigma/mapping/entry/FieldDefEntry.java
index d18115b..223410f 100644
--- a/src/main/java/cuchaz/enigma/mapping/entry/FieldDefEntry.java
+++ b/src/main/java/cuchaz/enigma/mapping/entry/FieldDefEntry.java
@@ -16,7 +16,7 @@ import cuchaz.enigma.bytecode.AccessFlags;
16import cuchaz.enigma.mapping.Signature; 16import cuchaz.enigma.mapping.Signature;
17import cuchaz.enigma.mapping.TypeDescriptor; 17import cuchaz.enigma.mapping.TypeDescriptor;
18 18
19public class FieldDefEntry extends FieldEntry { 19public class FieldDefEntry extends FieldEntry implements DefEntry {
20 private final AccessFlags access; 20 private final AccessFlags access;
21 private final Signature signature; 21 private final Signature signature;
22 22
@@ -28,6 +28,7 @@ public class FieldDefEntry extends FieldEntry {
28 this.signature = signature; 28 this.signature = signature;
29 } 29 }
30 30
31 @Override
31 public AccessFlags getAccess() { 32 public AccessFlags getAccess() {
32 return access; 33 return access;
33 } 34 }
diff --git a/src/main/java/cuchaz/enigma/mapping/entry/MethodDefEntry.java b/src/main/java/cuchaz/enigma/mapping/entry/MethodDefEntry.java
index ec3af69..960b08d 100644
--- a/src/main/java/cuchaz/enigma/mapping/entry/MethodDefEntry.java
+++ b/src/main/java/cuchaz/enigma/mapping/entry/MethodDefEntry.java
@@ -16,7 +16,7 @@ import cuchaz.enigma.bytecode.AccessFlags;
16import cuchaz.enigma.mapping.MethodDescriptor; 16import cuchaz.enigma.mapping.MethodDescriptor;
17import cuchaz.enigma.mapping.Signature; 17import cuchaz.enigma.mapping.Signature;
18 18
19public class MethodDefEntry extends MethodEntry { 19public class MethodDefEntry extends MethodEntry implements DefEntry {
20 20
21 private final AccessFlags access; 21 private final AccessFlags access;
22 private final Signature signature; 22 private final Signature signature;
@@ -29,6 +29,7 @@ public class MethodDefEntry extends MethodEntry {
29 this.signature = signature; 29 this.signature = signature;
30 } 30 }
31 31
32 @Override
32 public AccessFlags getAccess() { 33 public AccessFlags getAccess() {
33 return access; 34 return access;
34 } 35 }