org.objectweb.asm.tree.analysis
类 SimpleVerifier

java.lang.Object
  继承者 org.objectweb.asm.tree.analysis.BasicInterpreter
      继承者 org.objectweb.asm.tree.analysis.BasicVerifier
          继承者 org.objectweb.asm.tree.analysis.SimpleVerifier
所有已实现的接口:
Opcodes, Interpreter

public class SimpleVerifier
extends BasicVerifier

An extended BasicVerifier that performs more precise verifications. This verifier computes exact class types, instead of using a single "object reference" type (as done in the BasicVerifier).

作者:
Eric Bruneton, Bing Ran

字段摘要
 
从接口 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
 
构造方法摘要
SimpleVerifier()
          Constructs a new SimpleVerifier.
SimpleVerifier(Type currentClass, Type currentSuperClass, boolean isInterface)
          Constructs a new SimpleVerifier to verify a specific class.
SimpleVerifier(Type currentClass, Type currentSuperClass, List currentClassInterfaces, boolean isInterface)
          Constructs a new SimpleVerifier to verify a specific class.
 
方法摘要
protected  Class getClass(Type t)
           
protected  Value getElementValue(Value objectArrayValue)
           
protected  Type getSuperClass(Type t)
           
protected  boolean isArrayValue(Value value)
           
protected  boolean isAssignableFrom(Type t, Type u)
           
protected  boolean isInterface(Type t)
           
protected  boolean isSubTypeOf(Value value, Value expected)
           
 Value merge(Value v, Value w)
          Merges two values.
 Value newValue(Type type)
          Creates a new value that represents the given type.
 
从类 org.objectweb.asm.tree.analysis.BasicVerifier 继承的方法
binaryOperation, copyOperation, naryOperation, ternaryOperation, unaryOperation
 
从类 org.objectweb.asm.tree.analysis.BasicInterpreter 继承的方法
newOperation
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

SimpleVerifier

public SimpleVerifier()
Constructs a new SimpleVerifier.


SimpleVerifier

public SimpleVerifier(Type currentClass,
                      Type currentSuperClass,
                      boolean isInterface)
Constructs a new SimpleVerifier to verify a specific class. This class will not be loaded into the JVM since it may be incorrect.

参数:
currentClass - the class that is verified.
currentSuperClass - the super class of the class that is verified.
isInterface - if the class that is verified is an interface.

SimpleVerifier

public SimpleVerifier(Type currentClass,
                      Type currentSuperClass,
                      List currentClassInterfaces,
                      boolean isInterface)
Constructs a new SimpleVerifier to verify a specific class. This class will not be loaded into the JVM since it may be incorrect.

参数:
currentClass - the class that is verified.
currentSuperClass - the super class of the class that is verified.
currentClassInterfaces - the interfaces implemented by the class that is verified.
isInterface - if the class that is verified is an interface.
方法详细信息

newValue

public Value newValue(Type type)
从接口 Interpreter 复制的描述
Creates a new value that represents the given type. Called for method parameters (including this), exception handler variable and with null type for variables reserved by long and double types.

指定者:
接口 Interpreter 中的 newValue
覆盖:
BasicInterpreter 中的 newValue
参数:
type - a primitive or reference type, or null to represent an uninitialized value.
返回:
a value that represents the given type. The size of the returned value must be equal to the size of the given type.

isArrayValue

protected boolean isArrayValue(Value value)
覆盖:
BasicVerifier 中的 isArrayValue

getElementValue

protected Value getElementValue(Value objectArrayValue)
                         throws AnalyzerException
覆盖:
BasicVerifier 中的 getElementValue
抛出:
AnalyzerException

isSubTypeOf

protected boolean isSubTypeOf(Value value,
                              Value expected)
覆盖:
BasicVerifier 中的 isSubTypeOf

merge

public Value merge(Value v,
                   Value w)
从接口 Interpreter 复制的描述
Merges two values. The merge operation must return a value that represents both values (for instance, if the two values are two types, the merged value must be a common super type of the two types. If the two values are integer intervals, the merged value must be an interval that contains the previous ones. Likewise for other types of values).

指定者:
接口 Interpreter 中的 merge
覆盖:
BasicInterpreter 中的 merge
参数:
v - a value.
w - another value.
返回:
the merged value. If the merged value is equal to v, this method must return v.

isInterface

protected boolean isInterface(Type t)

getSuperClass

protected Type getSuperClass(Type t)

isAssignableFrom

protected boolean isAssignableFrom(Type t,
                                   Type u)

getClass

protected Class getClass(Type t)


Copyright © 2013. All Rights Reserved.