org.objectweb.asm.commons
类 JSRInlinerAdapter

java.lang.Object
  继承者 org.objectweb.asm.tree.MemberNode
      继承者 org.objectweb.asm.tree.MethodNode
          继承者 org.objectweb.asm.commons.JSRInlinerAdapter
所有已实现的接口:
MethodVisitor, Opcodes

public class JSRInlinerAdapter
extends MethodNode
implements Opcodes

A MethodAdapter that removes JSR instructions and inlines the referenced subroutines. Explanation of how it works TODO

作者:
Niko Matsakis

嵌套类摘要
protected static class JSRInlinerAdapter.Subroutine
           
 
字段摘要
 
从类 org.objectweb.asm.tree.MethodNode 继承的字段
access, annotationDefault, desc, exceptions, instructions, invisibleParameterAnnotations, localVariables, maxLocals, maxStack, name, signature, tryCatchBlocks, visibleParameterAnnotations
 
从类 org.objectweb.asm.tree.MemberNode 继承的字段
attrs, invisibleAnnotations, visibleAnnotations
 
从接口 org.objectweb.asm.Opcodes 继承的字段
AALOAD, AASTORE, ACC_ABSTRACT, ACC_ANNOTATION, ACC_BRIDGE, ACC_DEPRECATED, ACC_ENUM, ACC_FINAL, ACC_INTERFACE, ACC_NATIVE, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_STATIC, ACC_STRICT, ACC_SUPER, ACC_SYNCHRONIZED, ACC_SYNTHETIC, ACC_TRANSIENT, ACC_VARARGS, ACC_VOLATILE, ACONST_NULL, ALOAD, ANEWARRAY, ARETURN, ARRAYLENGTH, ASTORE, ATHROW, BALOAD, BASTORE, BIPUSH, CALOAD, CASTORE, CHECKCAST, D2F, D2I, D2L, DADD, DALOAD, DASTORE, DCMPG, DCMPL, DCONST_0, DCONST_1, DDIV, DLOAD, DMUL, DNEG, DOUBLE, DREM, DRETURN, DSTORE, DSUB, DUP, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, F_APPEND, F_CHOP, F_FULL, F_NEW, F_SAME, F_SAME1, F2D, F2I, F2L, FADD, FALOAD, FASTORE, FCMPG, FCMPL, FCONST_0, FCONST_1, FCONST_2, FDIV, FLOAD, FLOAT, FMUL, FNEG, FREM, FRETURN, FSTORE, FSUB, GETFIELD, GETSTATIC, GOTO, I2B, I2C, I2D, I2F, I2L, I2S, IADD, IALOAD, IAND, IASTORE, ICONST_0, ICONST_1, ICONST_2, ICONST_3, ICONST_4, ICONST_5, ICONST_M1, IDIV, IF_ACMPEQ, IF_ACMPNE, IF_ICMPEQ, IF_ICMPGE, IF_ICMPGT, IF_ICMPLE, IF_ICMPLT, IF_ICMPNE, IFEQ, IFGE, IFGT, IFLE, IFLT, IFNE, IFNONNULL, IFNULL, IINC, ILOAD, IMUL, INEG, INSTANCEOF, INTEGER, INVOKEINTERFACE, INVOKESPECIAL, INVOKESTATIC, INVOKEVIRTUAL, IOR, IREM, IRETURN, ISHL, ISHR, ISTORE, ISUB, IUSHR, IXOR, JSR, L2D, L2F, L2I, LADD, LALOAD, LAND, LASTORE, LCMP, LCONST_0, LCONST_1, LDC, LDIV, LLOAD, LMUL, LNEG, LONG, LOOKUPSWITCH, LOR, LREM, LRETURN, LSHL, LSHR, LSTORE, LSUB, LUSHR, LXOR, MONITORENTER, MONITOREXIT, MULTIANEWARRAY, NEW, NEWARRAY, NOP, NULL, POP, POP2, PUTFIELD, PUTSTATIC, RET, RETURN, SALOAD, SASTORE, SIPUSH, SWAP, T_BOOLEAN, T_BYTE, T_CHAR, T_DOUBLE, T_FLOAT, T_INT, T_LONG, T_SHORT, TABLESWITCH, TOP, UNINITIALIZED_THIS, V1_1, V1_2, V1_3, V1_4, V1_5, V1_6
 
构造方法摘要
JSRInlinerAdapter(MethodVisitor mv, int access, String name, String desc, String signature, String[] exceptions)
          Creates a new JSRInliner.
 
方法摘要
 void visitEnd()
          If any JSRs were seen, triggers the inlining process.
 void visitJumpInsn(int opcode, Label lbl)
          Detects a JSR instruction and sets a flag to indicate we will need to do inlining.
 
从类 org.objectweb.asm.tree.MethodNode 继承的方法
accept, accept, getLabelNode, visitAnnotationDefault, visitCode, visitFieldInsn, visitFrame, visitIincInsn, visitInsn, visitIntInsn, visitLabel, visitLdcInsn, visitLineNumber, visitLocalVariable, visitLookupSwitchInsn, visitMaxs, visitMethodInsn, visitMultiANewArrayInsn, visitParameterAnnotation, visitTableSwitchInsn, visitTryCatchBlock, visitTypeInsn, visitVarInsn
 
从类 org.objectweb.asm.tree.MemberNode 继承的方法
visitAnnotation, visitAttribute
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
从接口 org.objectweb.asm.MethodVisitor 继承的方法
visitAnnotation, visitAttribute
 

构造方法详细信息

JSRInlinerAdapter

public JSRInlinerAdapter(MethodVisitor mv,
                         int access,
                         String name,
                         String desc,
                         String signature,
                         String[] exceptions)
Creates a new JSRInliner.

参数:
mv - the MethodVisitor to send the resulting inlined method code to (use null for none).
access - the method's access flags (see Opcodes). This parameter also indicates if the method is synthetic and/or deprecated.
name - the method's name.
desc - the method's descriptor (see Type).
signature - the method's signature. May be null.
exceptions - the internal names of the method's exception classes (see getInternalName). May be null.
方法详细信息

visitJumpInsn

public void visitJumpInsn(int opcode,
                          Label lbl)
Detects a JSR instruction and sets a flag to indicate we will need to do inlining.

指定者:
接口 MethodVisitor 中的 visitJumpInsn
覆盖:
MethodNode 中的 visitJumpInsn
参数:
opcode - the opcode of the type instruction to be visited. This opcode is either IFEQ, IFNE, IFLT, IFGE, IFGT, IFLE, IF_ICMPEQ, IF_ICMPNE, IF_ICMPLT, IF_ICMPGE, IF_ICMPGT, IF_ICMPLE, IF_ACMPEQ, IF_ACMPNE, GOTO, JSR, IFNULL or IFNONNULL.
lbl - the operand of the instruction to be visited. This operand is a label that designates the instruction to which the jump instruction may jump.

visitEnd

public void visitEnd()
If any JSRs were seen, triggers the inlining process. Otherwise, forwards the byte codes untouched.

指定者:
接口 MethodVisitor 中的 visitEnd
覆盖:
MemberNode 中的 visitEnd


Copyright © 2013. All Rights Reserved.