From a7c525f2c3b5faddd86d85212c4ac3cb6e36a35e Mon Sep 17 00:00:00 2001 From: asie Date: Sun, 28 Oct 2018 22:23:01 +0100 Subject: expose AccessFlags over Access --- .../java/cuchaz/enigma/analysis/FieldReferenceTreeNode.java | 9 +++++---- src/main/java/cuchaz/enigma/analysis/JarIndex.java | 12 +++++++++--- .../java/cuchaz/enigma/analysis/MethodReferenceTreeNode.java | 7 ++++--- 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 @@ package cuchaz.enigma.analysis; +import cuchaz.enigma.bytecode.AccessFlags; import cuchaz.enigma.mapping.*; import cuchaz.enigma.mapping.entry.FieldEntry; import cuchaz.enigma.mapping.entry.MethodDefEntry; @@ -23,7 +24,7 @@ public class FieldReferenceTreeNode extends DefaultMutableTreeNode implements Re private Translator deobfuscatingTranslator; private FieldEntry entry; private EntryReference reference; - private Access access; + private AccessFlags access; public FieldReferenceTreeNode(Translator deobfuscatingTranslator, FieldEntry entry) { this.deobfuscatingTranslator = deobfuscatingTranslator; @@ -31,7 +32,7 @@ public class FieldReferenceTreeNode extends DefaultMutableTreeNode implements Re this.reference = null; } - private FieldReferenceTreeNode(Translator deobfuscatingTranslator, EntryReference reference, Access access) { + private FieldReferenceTreeNode(Translator deobfuscatingTranslator, EntryReference reference, AccessFlags access) { this.deobfuscatingTranslator = deobfuscatingTranslator; this.entry = reference.entry; this.reference = reference; @@ -60,11 +61,11 @@ public class FieldReferenceTreeNode extends DefaultMutableTreeNode implements Re // get all the child nodes if (this.reference == null) { for (EntryReference reference : index.getFieldReferences(this.entry)) { - add(new FieldReferenceTreeNode(this.deobfuscatingTranslator, reference, index.getAccess(this.entry))); + add(new FieldReferenceTreeNode(this.deobfuscatingTranslator, reference, index.getAccessFlags(this.entry))); } } else { for (EntryReference reference : index.getMethodsReferencing(this.reference.context)) { - add(new MethodReferenceTreeNode(this.deobfuscatingTranslator, reference, index.getAccess(this.reference.context))); + add(new MethodReferenceTreeNode(this.deobfuscatingTranslator, reference, index.getAccessFlags(this.reference.context))); } } 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 { private Set obfClassEntries; private TranslationIndex translationIndex; - private Map access; + private Map access; private Multimap fields; private Multimap methods; private Multimap methodImplementations; @@ -112,14 +112,14 @@ public class JarIndex { protected void indexField(ClassDefEntry owner, int access, String name, String desc, String signature) { FieldDefEntry fieldEntry = new FieldDefEntry(owner, name, new TypeDescriptor(desc), Signature.createTypedSignature(signature), new AccessFlags(access)); this.translationIndex.indexField(fieldEntry); - this.access.put(fieldEntry, Access.get(access)); + this.access.put(fieldEntry, owner.getAccess()); this.fields.put(fieldEntry.getOwnerClassEntry(), fieldEntry); } protected void indexMethod(ClassDefEntry owner, int access, String name, String desc, String signature) { MethodDefEntry methodEntry = new MethodDefEntry(owner, name, new MethodDescriptor(desc), Signature.createSignature(signature), new AccessFlags(access)); this.translationIndex.indexMethod(methodEntry); - this.access.put(methodEntry, Access.get(access)); + this.access.put(methodEntry, owner.getAccess()); this.methods.put(methodEntry.getOwnerClassEntry(), methodEntry); if (new AccessFlags(access).isSynthetic()) { @@ -231,7 +231,13 @@ public class JarIndex { return this.translationIndex; } + @Deprecated public Access getAccess(Entry entry) { + AccessFlags flags = getAccessFlags(entry); + return flags != null ? Access.get(flags) : null; + } + + public AccessFlags getAccessFlags(Entry entry) { return this.access.get(entry); } 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 @@ package cuchaz.enigma.analysis; import com.google.common.collect.Sets; +import cuchaz.enigma.bytecode.AccessFlags; import cuchaz.enigma.mapping.*; import cuchaz.enigma.mapping.entry.Entry; import cuchaz.enigma.mapping.entry.MethodDefEntry; @@ -27,7 +28,7 @@ public class MethodReferenceTreeNode extends DefaultMutableTreeNode private Translator deobfuscatingTranslator; private MethodEntry entry; private EntryReference reference; - private Access access; + private AccessFlags access; public MethodReferenceTreeNode(Translator deobfuscatingTranslator, MethodEntry entry) { this.deobfuscatingTranslator = deobfuscatingTranslator; @@ -36,7 +37,7 @@ public class MethodReferenceTreeNode extends DefaultMutableTreeNode } public MethodReferenceTreeNode(Translator deobfuscatingTranslator, - EntryReference reference, Access access) { + EntryReference reference, AccessFlags access) { this.deobfuscatingTranslator = deobfuscatingTranslator; this.entry = reference.entry; this.reference = reference; @@ -65,7 +66,7 @@ public class MethodReferenceTreeNode extends DefaultMutableTreeNode public void load(JarIndex index, boolean recurse) { // get all the child nodes for (EntryReference reference : index.getMethodsReferencing(this.entry)) { - add(new MethodReferenceTreeNode(this.deobfuscatingTranslator, reference, index.getAccess(this.entry))); + add(new MethodReferenceTreeNode(this.deobfuscatingTranslator, reference, index.getAccessFlags(this.entry))); } if (recurse && this.children != null) { -- cgit v1.2.3