< prev index next >

src/java.base/share/classes/jdk/internal/org/objectweb/asm/util/Textifier.java

Print this page
rev 47452 : imported patch jdk-new-asmv6.patch

*** 180,190 **** * * @throws IllegalStateException * If a subclass calls this constructor. */ public Textifier() { ! this(Opcodes.ASM5); if (getClass() != Textifier.class) { throw new IllegalStateException(); } } --- 180,190 ---- * * @throws IllegalStateException * If a subclass calls this constructor. */ public Textifier() { ! this(Opcodes.ASM6); if (getClass() != Textifier.class) { throw new IllegalStateException(); } }
*** 191,201 **** /** * Constructs a new {@link Textifier}. * * @param api * the ASM API version implemented by this visitor. Must be one ! * of {@link Opcodes#ASM4} or {@link Opcodes#ASM5}. */ protected Textifier(final int api) { super(api); } --- 191,201 ---- /** * Constructs a new {@link Textifier}. * * @param api * the ASM API version implemented by this visitor. Must be one ! * of {@link Opcodes#ASM4}, {@link Opcodes#ASM5} or {@link Opcodes#ASM6}. */ protected Textifier(final int api) { super(api); }
*** 248,257 **** --- 248,261 ---- @Override public void visit(final int version, final int access, final String name, final String signature, final String superName, final String[] interfaces) { + if ((access & Opcodes.ACC_MODULE) != 0) { + // visitModule will print the module + return; + } this.access = access; int major = version & 0xFFFF; int minor = version >>> 16; buf.setLength(0); buf.append("// class version ").append(major).append('.').append(minor)
*** 269,279 **** r.accept(sv); buf.append("// declaration: ").append(name) .append(sv.getDeclaration()).append('\n'); } ! appendAccess(access & ~Opcodes.ACC_SUPER); if ((access & Opcodes.ACC_ANNOTATION) != 0) { buf.append("@interface "); } else if ((access & Opcodes.ACC_INTERFACE) != 0) { buf.append("interface "); } else if ((access & Opcodes.ACC_ENUM) == 0) { --- 273,283 ---- r.accept(sv); buf.append("// declaration: ").append(name) .append(sv.getDeclaration()).append('\n'); } ! appendAccess(access & ~(Opcodes.ACC_SUPER | Opcodes.ACC_MODULE)); if ((access & Opcodes.ACC_ANNOTATION) != 0) { buf.append("@interface "); } else if ((access & Opcodes.ACC_INTERFACE) != 0) { buf.append("interface "); } else if ((access & Opcodes.ACC_ENUM) == 0) {
*** 313,322 **** --- 317,344 ---- text.add(buf.toString()); } } @Override + public Printer visitModule(final String name, final int access, + final String version) { + buf.setLength(0); + if ((access & Opcodes.ACC_OPEN) != 0) { + buf.append("open "); + } + buf.append("module ") + .append(name) + .append(" { ") + .append(version == null ? "" : "// " + version) + .append("\n\n"); + text.add(buf.toString()); + Textifier t = createTextifier(); + text.add(t.getText()); + return t; + } + + @Override public void visitOuterClass(final String owner, final String name, final String desc) { buf.setLength(0); buf.append(tab).append("OUTERCLASS "); appendDescriptor(INTERNAL_NAME, owner);
*** 441,451 **** } buf.append('\n'); } buf.append(tab); ! appendAccess(access & ~Opcodes.ACC_VOLATILE); if ((access & Opcodes.ACC_NATIVE) != 0) { buf.append("native "); } if ((access & Opcodes.ACC_VARARGS) != 0) { buf.append("varargs "); --- 463,473 ---- } buf.append('\n'); } buf.append(tab); ! appendAccess(access & ~(Opcodes.ACC_VOLATILE | Opcodes.ACC_TRANSIENT)); if ((access & Opcodes.ACC_NATIVE) != 0) { buf.append("native "); } if ((access & Opcodes.ACC_VARARGS) != 0) { buf.append("varargs ");
*** 481,490 **** --- 503,624 ---- public void visitClassEnd() { text.add("}\n"); } // ------------------------------------------------------------------------ + // Module + // ------------------------------------------------------------------------ + + @Override + public void visitMainClass(String mainClass) { + buf.setLength(0); + buf.append(" // main class ").append(mainClass).append('\n'); + text.add(buf.toString()); + } + + @Override + public void visitPackage(String packaze) { + buf.setLength(0); + buf.append(" // package ").append(packaze).append('\n'); + text.add(buf.toString()); + } + + @Override + public void visitRequire(String require, int access, String version) { + buf.setLength(0); + buf.append(tab).append("requires "); + if ((access & Opcodes.ACC_TRANSITIVE) != 0) { + buf.append("transitive "); + } + if ((access & Opcodes.ACC_STATIC_PHASE) != 0) { + buf.append("static "); + } + buf.append(require) + .append("; // access flags 0x") + .append(Integer.toHexString(access).toUpperCase()) + .append('\n'); + if (version != null) { + buf.append(" // version ") + .append(version) + .append('\n'); + } + text.add(buf.toString()); + } + + @Override + public void visitExport(String export, int access, String... modules) { + buf.setLength(0); + buf.append(tab).append("exports "); + buf.append(export); + if (modules != null && modules.length > 0) { + buf.append(" to"); + } else { + buf.append(';'); + } + buf.append(" // access flags 0x") + .append(Integer.toHexString(access).toUpperCase()) + .append('\n'); + if (modules != null && modules.length > 0) { + for (int i = 0; i < modules.length; ++i) { + buf.append(tab2).append(modules[i]); + buf.append(i != modules.length - 1 ? ",\n": ";\n"); + } + } + text.add(buf.toString()); + } + + @Override + public void visitOpen(String export, int access, String... modules) { + buf.setLength(0); + buf.append(tab).append("opens "); + buf.append(export); + if (modules != null && modules.length > 0) { + buf.append(" to"); + } else { + buf.append(';'); + } + buf.append(" // access flags 0x") + .append(Integer.toHexString(access).toUpperCase()) + .append('\n'); + if (modules != null && modules.length > 0) { + for (int i = 0; i < modules.length; ++i) { + buf.append(tab2).append(modules[i]); + buf.append(i != modules.length - 1 ? ",\n": ";\n"); + } + } + text.add(buf.toString()); + } + + @Override + public void visitUse(String use) { + buf.setLength(0); + buf.append(tab).append("uses "); + appendDescriptor(INTERNAL_NAME, use); + buf.append(";\n"); + text.add(buf.toString()); + } + + @Override + public void visitProvide(String provide, String... providers) { + buf.setLength(0); + buf.append(tab).append("provides "); + appendDescriptor(INTERNAL_NAME, provide); + buf.append(" with\n"); + for (int i = 0; i < providers.length; ++i) { + buf.append(tab2); + appendDescriptor(INTERNAL_NAME, providers[i]); + buf.append(i != providers.length - 1 ? ",\n": ";\n"); + } + text.add(buf.toString()); + } + + @Override + public void visitModuleEnd() { + // empty + } + + // ------------------------------------------------------------------------ // Annotations // ------------------------------------------------------------------------ @Override public void visit(final String name, final Object value) {
*** 1294,1311 **** buf.append('\n'); buf.append(tab3); appendDescriptor(INTERNAL_NAME, h.getOwner()); buf.append('.'); buf.append(h.getName()); ! if(!isMethodHandle){ buf.append('('); } appendDescriptor(HANDLE_DESCRIPTOR, h.getDesc()); ! if(!isMethodHandle){ buf.append(')'); } } /** * Appends a string representation of the given access modifiers to * {@link #buf buf}. * --- 1428,1448 ---- buf.append('\n'); buf.append(tab3); appendDescriptor(INTERNAL_NAME, h.getOwner()); buf.append('.'); buf.append(h.getName()); ! if (!isMethodHandle) { buf.append('('); } appendDescriptor(HANDLE_DESCRIPTOR, h.getDesc()); ! if (!isMethodHandle) { buf.append(')'); } + if (h.isInterface()) { + buf.append(" itf"); } + } /** * Appends a string representation of the given access modifiers to * {@link #buf buf}. *
< prev index next >