From be22b07ae28cd8de11e3a32c3766aed6966ec6b5 Mon Sep 17 00:00:00 2001 From: asie Date: Wed, 7 Nov 2018 20:18:50 +0100 Subject: update Guava, show proper constructor tree node, fix AccessFlags.toString --- .../java/cuchaz/enigma/bytecode/AccessFlags.java | 27 +++++++++++++++++++++- .../translators/TranslationClassVisitor.java | 2 +- 2 files changed, 27 insertions(+), 2 deletions(-) (limited to 'src/main/java/cuchaz/enigma/bytecode') diff --git a/src/main/java/cuchaz/enigma/bytecode/AccessFlags.java b/src/main/java/cuchaz/enigma/bytecode/AccessFlags.java index 0bfc59b..31c8691 100644 --- a/src/main/java/cuchaz/enigma/bytecode/AccessFlags.java +++ b/src/main/java/cuchaz/enigma/bytecode/AccessFlags.java @@ -1,5 +1,6 @@ package cuchaz.enigma.bytecode; +import cuchaz.enigma.analysis.Access; import org.objectweb.asm.Opcodes; import java.lang.reflect.Modifier; @@ -35,6 +36,10 @@ public class AccessFlags { return (flags & Opcodes.ACC_ENUM) != 0; } + public boolean isBridge() { + return (flags & Opcodes.ACC_BRIDGE) != 0; + } + public AccessFlags setPrivate() { this.setVisibility(Opcodes.ACC_PRIVATE); return this; @@ -50,11 +55,16 @@ public class AccessFlags { return this; } - public AccessFlags setBridged() { + public AccessFlags setBridge() { flags |= Opcodes.ACC_BRIDGE; return this; } + @Deprecated + public AccessFlags setBridged() { + return setBridge(); + } + public void setVisibility(int visibility) { this.resetVisibility(); this.flags |= visibility; @@ -77,4 +87,19 @@ public class AccessFlags { public int hashCode() { return flags; } + + @Override + public String toString() { + StringBuilder builder = new StringBuilder(Access.get(this).toString().toLowerCase()); + if (isStatic()) { + builder.append(" static"); + } + if (isSynthetic()) { + builder.append(" synthetic"); + } + if (isBridge()) { + builder.append(" bridge"); + } + return builder.toString(); + } } diff --git a/src/main/java/cuchaz/enigma/bytecode/translators/TranslationClassVisitor.java b/src/main/java/cuchaz/enigma/bytecode/translators/TranslationClassVisitor.java index 234d11f..5b16138 100644 --- a/src/main/java/cuchaz/enigma/bytecode/translators/TranslationClassVisitor.java +++ b/src/main/java/cuchaz/enigma/bytecode/translators/TranslationClassVisitor.java @@ -61,7 +61,7 @@ public class TranslationClassVisitor extends ClassVisitor { MethodDefEntry entry = new MethodDefEntry(obfClassEntry, name, new MethodDescriptor(desc), Signature.createSignature(signature), new AccessFlags(access)); MethodDefEntry translatedEntry = translator.getTranslatedMethodDef(entry); if (jarIndex.getBridgedMethod(entry) != null) { - translatedEntry.getAccess().setBridged(); + translatedEntry.getAccess().setBridge(); } String[] translatedExceptions = new String[exceptions.length]; for (int i = 0; i < exceptions.length; i++) { -- cgit v1.2.3