diff options
| author | 2018-10-28 22:23:01 +0100 | |
|---|---|---|
| committer | 2018-10-28 22:23:01 +0100 | |
| commit | a7c525f2c3b5faddd86d85212c4ac3cb6e36a35e (patch) | |
| tree | 82468897f37c0674056744d6b128b47f7e2ce105 /src | |
| parent | update to ASM 7.0 (diff) | |
| download | enigma-a7c525f2c3b5faddd86d85212c4ac3cb6e36a35e.tar.gz enigma-a7c525f2c3b5faddd86d85212c4ac3cb6e36a35e.tar.xz enigma-a7c525f2c3b5faddd86d85212c4ac3cb6e36a35e.zip | |
expose AccessFlags over Access
Diffstat (limited to 'src')
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 | ||
| 12 | package cuchaz.enigma.analysis; | 12 | package cuchaz.enigma.analysis; |
| 13 | 13 | ||
| 14 | import cuchaz.enigma.bytecode.AccessFlags; | ||
| 14 | import cuchaz.enigma.mapping.*; | 15 | import cuchaz.enigma.mapping.*; |
| 15 | import cuchaz.enigma.mapping.entry.FieldEntry; | 16 | import cuchaz.enigma.mapping.entry.FieldEntry; |
| 16 | import cuchaz.enigma.mapping.entry.MethodDefEntry; | 17 | import 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 @@ | |||
| 12 | package cuchaz.enigma.analysis; | 12 | package cuchaz.enigma.analysis; |
| 13 | 13 | ||
| 14 | import com.google.common.collect.Sets; | 14 | import com.google.common.collect.Sets; |
| 15 | import cuchaz.enigma.bytecode.AccessFlags; | ||
| 15 | import cuchaz.enigma.mapping.*; | 16 | import cuchaz.enigma.mapping.*; |
| 16 | import cuchaz.enigma.mapping.entry.Entry; | 17 | import cuchaz.enigma.mapping.entry.Entry; |
| 17 | import cuchaz.enigma.mapping.entry.MethodDefEntry; | 18 | import 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) { |