summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar asie2018-10-28 22:23:01 +0100
committerGravatar asie2018-10-28 22:23:01 +0100
commita7c525f2c3b5faddd86d85212c4ac3cb6e36a35e (patch)
tree82468897f37c0674056744d6b128b47f7e2ce105
parentupdate to ASM 7.0 (diff)
downloadenigma-a7c525f2c3b5faddd86d85212c4ac3cb6e36a35e.tar.gz
enigma-a7c525f2c3b5faddd86d85212c4ac3cb6e36a35e.tar.xz
enigma-a7c525f2c3b5faddd86d85212c4ac3cb6e36a35e.zip
expose AccessFlags over Access
-rw-r--r--src/main/java/cuchaz/enigma/analysis/FieldReferenceTreeNode.java9
-rw-r--r--src/main/java/cuchaz/enigma/analysis/JarIndex.java12
-rw-r--r--src/main/java/cuchaz/enigma/analysis/MethodReferenceTreeNode.java7
3 files changed, 18 insertions, 10 deletions
diff --git a/src/main/java/cuchaz/enigma/analysis/FieldReferenceTreeNode.java b/src/main/java/cuchaz/enigma/analysis/FieldReferenceTreeNode.java
index f63b779a..2318a2b7 100644
--- a/src/main/java/cuchaz/enigma/analysis/FieldReferenceTreeNode.java
+++ b/src/main/java/cuchaz/enigma/analysis/FieldReferenceTreeNode.java
@@ -11,6 +11,7 @@
11 11
12package cuchaz.enigma.analysis; 12package cuchaz.enigma.analysis;
13 13
14import cuchaz.enigma.bytecode.AccessFlags;
14import cuchaz.enigma.mapping.*; 15import cuchaz.enigma.mapping.*;
15import cuchaz.enigma.mapping.entry.FieldEntry; 16import cuchaz.enigma.mapping.entry.FieldEntry;
16import cuchaz.enigma.mapping.entry.MethodDefEntry; 17import cuchaz.enigma.mapping.entry.MethodDefEntry;
@@ -23,7 +24,7 @@ public class FieldReferenceTreeNode extends DefaultMutableTreeNode implements Re
23 private Translator deobfuscatingTranslator; 24 private Translator deobfuscatingTranslator;
24 private FieldEntry entry; 25 private FieldEntry entry;
25 private EntryReference<FieldEntry, MethodDefEntry> reference; 26 private EntryReference<FieldEntry, MethodDefEntry> reference;
26 private Access access; 27 private AccessFlags access;
27 28
28 public FieldReferenceTreeNode(Translator deobfuscatingTranslator, FieldEntry entry) { 29 public FieldReferenceTreeNode(Translator deobfuscatingTranslator, FieldEntry entry) {
29 this.deobfuscatingTranslator = deobfuscatingTranslator; 30 this.deobfuscatingTranslator = deobfuscatingTranslator;
@@ -31,7 +32,7 @@ public class FieldReferenceTreeNode extends DefaultMutableTreeNode implements Re
31 this.reference = null; 32 this.reference = null;
32 } 33 }
33 34
34 private FieldReferenceTreeNode(Translator deobfuscatingTranslator, EntryReference<FieldEntry, MethodDefEntry> reference, Access access) { 35 private FieldReferenceTreeNode(Translator deobfuscatingTranslator, EntryReference<FieldEntry, MethodDefEntry> reference, AccessFlags access) {
35 this.deobfuscatingTranslator = deobfuscatingTranslator; 36 this.deobfuscatingTranslator = deobfuscatingTranslator;
36 this.entry = reference.entry; 37 this.entry = reference.entry;
37 this.reference = reference; 38 this.reference = reference;
@@ -60,11 +61,11 @@ public class FieldReferenceTreeNode extends DefaultMutableTreeNode implements Re
60 // get all the child nodes 61 // get all the child nodes
61 if (this.reference == null) { 62 if (this.reference == null) {
62 for (EntryReference<FieldEntry, MethodDefEntry> reference : index.getFieldReferences(this.entry)) { 63 for (EntryReference<FieldEntry, MethodDefEntry> reference : index.getFieldReferences(this.entry)) {
63 add(new FieldReferenceTreeNode(this.deobfuscatingTranslator, reference, index.getAccess(this.entry))); 64 add(new FieldReferenceTreeNode(this.deobfuscatingTranslator, reference, index.getAccessFlags(this.entry)));
64 } 65 }
65 } else { 66 } else {
66 for (EntryReference<MethodEntry, MethodDefEntry> reference : index.getMethodsReferencing(this.reference.context)) { 67 for (EntryReference<MethodEntry, MethodDefEntry> reference : index.getMethodsReferencing(this.reference.context)) {
67 add(new MethodReferenceTreeNode(this.deobfuscatingTranslator, reference, index.getAccess(this.reference.context))); 68 add(new MethodReferenceTreeNode(this.deobfuscatingTranslator, reference, index.getAccessFlags(this.reference.context)));
68 } 69 }
69 } 70 }
70 71
diff --git a/src/main/java/cuchaz/enigma/analysis/JarIndex.java b/src/main/java/cuchaz/enigma/analysis/JarIndex.java
index 64ea7950..a87d8c37 100644
--- a/src/main/java/cuchaz/enigma/analysis/JarIndex.java
+++ b/src/main/java/cuchaz/enigma/analysis/JarIndex.java
@@ -25,7 +25,7 @@ public class JarIndex {
25 25
26 private Set<ClassEntry> obfClassEntries; 26 private Set<ClassEntry> obfClassEntries;
27 private TranslationIndex translationIndex; 27 private TranslationIndex translationIndex;
28 private Map<Entry, Access> access; 28 private Map<Entry, AccessFlags> access;
29 private Multimap<ClassEntry, FieldDefEntry> fields; 29 private Multimap<ClassEntry, FieldDefEntry> fields;
30 private Multimap<ClassEntry, MethodDefEntry> methods; 30 private Multimap<ClassEntry, MethodDefEntry> methods;
31 private Multimap<String, MethodDefEntry> methodImplementations; 31 private Multimap<String, MethodDefEntry> methodImplementations;
@@ -112,14 +112,14 @@ public class JarIndex {
112 protected void indexField(ClassDefEntry owner, int access, String name, String desc, String signature) { 112 protected void indexField(ClassDefEntry owner, int access, String name, String desc, String signature) {
113 FieldDefEntry fieldEntry = new FieldDefEntry(owner, name, new TypeDescriptor(desc), Signature.createTypedSignature(signature), new AccessFlags(access)); 113 FieldDefEntry fieldEntry = new FieldDefEntry(owner, name, new TypeDescriptor(desc), Signature.createTypedSignature(signature), new AccessFlags(access));
114 this.translationIndex.indexField(fieldEntry); 114 this.translationIndex.indexField(fieldEntry);
115 this.access.put(fieldEntry, Access.get(access)); 115 this.access.put(fieldEntry, owner.getAccess());
116 this.fields.put(fieldEntry.getOwnerClassEntry(), fieldEntry); 116 this.fields.put(fieldEntry.getOwnerClassEntry(), fieldEntry);
117 } 117 }
118 118
119 protected void indexMethod(ClassDefEntry owner, int access, String name, String desc, String signature) { 119 protected void indexMethod(ClassDefEntry owner, int access, String name, String desc, String signature) {
120 MethodDefEntry methodEntry = new MethodDefEntry(owner, name, new MethodDescriptor(desc), Signature.createSignature(signature), new AccessFlags(access)); 120 MethodDefEntry methodEntry = new MethodDefEntry(owner, name, new MethodDescriptor(desc), Signature.createSignature(signature), new AccessFlags(access));
121 this.translationIndex.indexMethod(methodEntry); 121 this.translationIndex.indexMethod(methodEntry);
122 this.access.put(methodEntry, Access.get(access)); 122 this.access.put(methodEntry, owner.getAccess());
123 this.methods.put(methodEntry.getOwnerClassEntry(), methodEntry); 123 this.methods.put(methodEntry.getOwnerClassEntry(), methodEntry);
124 124
125 if (new AccessFlags(access).isSynthetic()) { 125 if (new AccessFlags(access).isSynthetic()) {
@@ -231,7 +231,13 @@ public class JarIndex {
231 return this.translationIndex; 231 return this.translationIndex;
232 } 232 }
233 233
234 @Deprecated
234 public Access getAccess(Entry entry) { 235 public Access getAccess(Entry entry) {
236 AccessFlags flags = getAccessFlags(entry);
237 return flags != null ? Access.get(flags) : null;
238 }
239
240 public AccessFlags getAccessFlags(Entry entry) {
235 return this.access.get(entry); 241 return this.access.get(entry);
236 } 242 }
237 243
diff --git a/src/main/java/cuchaz/enigma/analysis/MethodReferenceTreeNode.java b/src/main/java/cuchaz/enigma/analysis/MethodReferenceTreeNode.java
index 76c73c15..0eae5cc4 100644
--- a/src/main/java/cuchaz/enigma/analysis/MethodReferenceTreeNode.java
+++ b/src/main/java/cuchaz/enigma/analysis/MethodReferenceTreeNode.java
@@ -12,6 +12,7 @@
12package cuchaz.enigma.analysis; 12package cuchaz.enigma.analysis;
13 13
14import com.google.common.collect.Sets; 14import com.google.common.collect.Sets;
15import cuchaz.enigma.bytecode.AccessFlags;
15import cuchaz.enigma.mapping.*; 16import cuchaz.enigma.mapping.*;
16import cuchaz.enigma.mapping.entry.Entry; 17import cuchaz.enigma.mapping.entry.Entry;
17import cuchaz.enigma.mapping.entry.MethodDefEntry; 18import cuchaz.enigma.mapping.entry.MethodDefEntry;
@@ -27,7 +28,7 @@ public class MethodReferenceTreeNode extends DefaultMutableTreeNode
27 private Translator deobfuscatingTranslator; 28 private Translator deobfuscatingTranslator;
28 private MethodEntry entry; 29 private MethodEntry entry;
29 private EntryReference<MethodEntry, MethodDefEntry> reference; 30 private EntryReference<MethodEntry, MethodDefEntry> reference;
30 private Access access; 31 private AccessFlags access;
31 32
32 public MethodReferenceTreeNode(Translator deobfuscatingTranslator, MethodEntry entry) { 33 public MethodReferenceTreeNode(Translator deobfuscatingTranslator, MethodEntry entry) {
33 this.deobfuscatingTranslator = deobfuscatingTranslator; 34 this.deobfuscatingTranslator = deobfuscatingTranslator;
@@ -36,7 +37,7 @@ public class MethodReferenceTreeNode extends DefaultMutableTreeNode
36 } 37 }
37 38
38 public MethodReferenceTreeNode(Translator deobfuscatingTranslator, 39 public MethodReferenceTreeNode(Translator deobfuscatingTranslator,
39 EntryReference<MethodEntry, MethodDefEntry> reference, Access access) { 40 EntryReference<MethodEntry, MethodDefEntry> reference, AccessFlags access) {
40 this.deobfuscatingTranslator = deobfuscatingTranslator; 41 this.deobfuscatingTranslator = deobfuscatingTranslator;
41 this.entry = reference.entry; 42 this.entry = reference.entry;
42 this.reference = reference; 43 this.reference = reference;
@@ -65,7 +66,7 @@ public class MethodReferenceTreeNode extends DefaultMutableTreeNode
65 public void load(JarIndex index, boolean recurse) { 66 public void load(JarIndex index, boolean recurse) {
66 // get all the child nodes 67 // get all the child nodes
67 for (EntryReference<MethodEntry, MethodDefEntry> reference : index.getMethodsReferencing(this.entry)) { 68 for (EntryReference<MethodEntry, MethodDefEntry> reference : index.getMethodsReferencing(this.entry)) {
68 add(new MethodReferenceTreeNode(this.deobfuscatingTranslator, reference, index.getAccess(this.entry))); 69 add(new MethodReferenceTreeNode(this.deobfuscatingTranslator, reference, index.getAccessFlags(this.entry)));
69 } 70 }
70 71
71 if (recurse && this.children != null) { 72 if (recurse && this.children != null) {