org.softevo.jdynpur.runtime
Class ObjectCreationTracingVisitor

java.lang.Object
  extended by org.objectweb.asm.MethodAdapter
      extended by org.softevo.jdynpur.runtime.ObjectCreationTracingVisitor
All Implemented Interfaces:
org.objectweb.asm.MethodVisitor, org.objectweb.asm.Opcodes

public class ObjectCreationTracingVisitor
extends org.objectweb.asm.MethodAdapter
implements org.objectweb.asm.Opcodes


Field Summary
protected  int newInstructionCounter
           
static int ST_DEFAULT
          The class is in this state if, during bytecode processing, we did not recently encounter a new instruction.
static int ST_DUPX1
          Last but one instruction was new, last instruction dup_x1.
static int ST_NEW
          Last visited instruction was a new instruction.
 
Fields inherited from class org.objectweb.asm.MethodAdapter
mv
 
Fields inherited from interface 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, DREM, DRETURN, DSTORE, DSUB, DUP, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, F2D, F2I, F2L, FADD, FALOAD, FASTORE, FCMPG, FCMPL, FCONST_0, FCONST_1, FCONST_2, FDIV, FLOAD, 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, 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, LOOKUPSWITCH, LOR, LREM, LRETURN, LSHL, LSHR, LSTORE, LSUB, LUSHR, LXOR, MONITORENTER, MONITOREXIT, MULTIANEWARRAY, NEW, NEWARRAY, NOP, 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, V1_1, V1_2, V1_3, V1_4, V1_5, V1_6
 
Constructor Summary
ObjectCreationTracingVisitor(org.objectweb.asm.MethodVisitor visitor)
           
 
Method Summary
protected  void handleStateReset()
           
protected  void superVisitMethodInsn(int access, java.lang.String className, java.lang.String methodName, java.lang.String desc)
           
 void visitFieldInsn(int arg0, java.lang.String arg1, java.lang.String arg2, java.lang.String arg3)
           
 void visitIincInsn(int arg0, int arg1)
           
 void visitInsn(int opCode)
           
 void visitIntInsn(int arg0, int arg1)
           
 void visitJumpInsn(int arg0, org.objectweb.asm.Label arg1)
           
 void visitLdcInsn(java.lang.Object arg0)
           
 void visitLookupSwitchInsn(org.objectweb.asm.Label arg0, int[] arg1, org.objectweb.asm.Label[] arg2)
           
 void visitMethodInsn(int access, java.lang.String className, java.lang.String methodName, java.lang.String desc)
           
 void visitMultiANewArrayInsn(java.lang.String arg0, int arg1)
           
 void visitTableSwitchInsn(int arg0, int arg1, org.objectweb.asm.Label arg2, org.objectweb.asm.Label[] arg3)
           
 void visitTypeInsn(int opCode, java.lang.String typeDesc)
           
 void visitVarInsn(int arg0, int arg1)
           
 
Methods inherited from class org.objectweb.asm.MethodAdapter
visitAnnotation, visitAnnotationDefault, visitAttribute, visitCode, visitEnd, visitLabel, visitLineNumber, visitLocalVariable, visitMaxs, visitParameterAnnotation, visitTryCatchBlock
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ST_DEFAULT

public static final int ST_DEFAULT
The class is in this state if, during bytecode processing, we did not recently encounter a new instruction.

See Also:
Constant Field Values

ST_NEW

public static final int ST_NEW
Last visited instruction was a new instruction.

See Also:
Constant Field Values

ST_DUPX1

public static final int ST_DUPX1
Last but one instruction was new, last instruction dup_x1.

See Also:
Constant Field Values

newInstructionCounter

protected int newInstructionCounter
Constructor Detail

ObjectCreationTracingVisitor

public ObjectCreationTracingVisitor(org.objectweb.asm.MethodVisitor visitor)
Method Detail

visitFieldInsn

public void visitFieldInsn(int arg0,
                           java.lang.String arg1,
                           java.lang.String arg2,
                           java.lang.String arg3)
Specified by:
visitFieldInsn in interface org.objectweb.asm.MethodVisitor
Overrides:
visitFieldInsn in class org.objectweb.asm.MethodAdapter

visitIincInsn

public void visitIincInsn(int arg0,
                          int arg1)
Specified by:
visitIincInsn in interface org.objectweb.asm.MethodVisitor
Overrides:
visitIincInsn in class org.objectweb.asm.MethodAdapter

visitInsn

public void visitInsn(int opCode)
Specified by:
visitInsn in interface org.objectweb.asm.MethodVisitor
Overrides:
visitInsn in class org.objectweb.asm.MethodAdapter

visitIntInsn

public void visitIntInsn(int arg0,
                         int arg1)
Specified by:
visitIntInsn in interface org.objectweb.asm.MethodVisitor
Overrides:
visitIntInsn in class org.objectweb.asm.MethodAdapter

visitJumpInsn

public void visitJumpInsn(int arg0,
                          org.objectweb.asm.Label arg1)
Specified by:
visitJumpInsn in interface org.objectweb.asm.MethodVisitor
Overrides:
visitJumpInsn in class org.objectweb.asm.MethodAdapter

visitLdcInsn

public void visitLdcInsn(java.lang.Object arg0)
Specified by:
visitLdcInsn in interface org.objectweb.asm.MethodVisitor
Overrides:
visitLdcInsn in class org.objectweb.asm.MethodAdapter

visitLookupSwitchInsn

public void visitLookupSwitchInsn(org.objectweb.asm.Label arg0,
                                  int[] arg1,
                                  org.objectweb.asm.Label[] arg2)
Specified by:
visitLookupSwitchInsn in interface org.objectweb.asm.MethodVisitor
Overrides:
visitLookupSwitchInsn in class org.objectweb.asm.MethodAdapter

visitMethodInsn

public void visitMethodInsn(int access,
                            java.lang.String className,
                            java.lang.String methodName,
                            java.lang.String desc)
Specified by:
visitMethodInsn in interface org.objectweb.asm.MethodVisitor
Overrides:
visitMethodInsn in class org.objectweb.asm.MethodAdapter

visitMultiANewArrayInsn

public void visitMultiANewArrayInsn(java.lang.String arg0,
                                    int arg1)
Specified by:
visitMultiANewArrayInsn in interface org.objectweb.asm.MethodVisitor
Overrides:
visitMultiANewArrayInsn in class org.objectweb.asm.MethodAdapter

visitTableSwitchInsn

public void visitTableSwitchInsn(int arg0,
                                 int arg1,
                                 org.objectweb.asm.Label arg2,
                                 org.objectweb.asm.Label[] arg3)
Specified by:
visitTableSwitchInsn in interface org.objectweb.asm.MethodVisitor
Overrides:
visitTableSwitchInsn in class org.objectweb.asm.MethodAdapter

visitTypeInsn

public void visitTypeInsn(int opCode,
                          java.lang.String typeDesc)
Specified by:
visitTypeInsn in interface org.objectweb.asm.MethodVisitor
Overrides:
visitTypeInsn in class org.objectweb.asm.MethodAdapter

visitVarInsn

public void visitVarInsn(int arg0,
                         int arg1)
Specified by:
visitVarInsn in interface org.objectweb.asm.MethodVisitor
Overrides:
visitVarInsn in class org.objectweb.asm.MethodAdapter

handleStateReset

protected void handleStateReset()

superVisitMethodInsn

protected void superVisitMethodInsn(int access,
                                    java.lang.String className,
                                    java.lang.String methodName,
                                    java.lang.String desc)


Copyright © 2007-2008 Software Engineering Group at Saarland University. All Rights Reserved.