类 SimpleVerifier
java.lang.Object
org.beetl.ow2.asm.tree.analysis.Interpreter<BasicValue>
org.beetl.ow2.asm.tree.analysis.BasicInterpreter
org.beetl.ow2.asm.tree.analysis.BasicVerifier
org.beetl.ow2.asm.tree.analysis.SimpleVerifier
- 所有已实现的接口:
Opcodes
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.beetl.ow2.asm.tree.analysis.Interpreter
api从接口继承的字段 org.beetl.ow2.asm.Opcodes
AALOAD, AASTORE, ACC_ABSTRACT, ACC_ANNOTATION, ACC_BRIDGE, ACC_DEPRECATED, ACC_ENUM, ACC_FINAL, ACC_INTERFACE, ACC_MANDATED, 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, ASM4, ASM5, 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, H_GETFIELD, H_GETSTATIC, H_INVOKEINTERFACE, H_INVOKESPECIAL, H_INVOKESTATIC, H_INVOKEVIRTUAL, H_NEWINVOKESPECIAL, H_PUTFIELD, H_PUTSTATIC, 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, INVOKEDYNAMIC, 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, V1_7, V1_8 -
构造器概要
构造器限定符构造器说明Constructs a newSimpleVerifier.protectedSimpleVerifier(int api, Type currentClass, Type currentSuperClass, List<Type> currentClassInterfaces, boolean isInterface) SimpleVerifier(Type currentClass, Type currentSuperClass, boolean isInterface) Constructs a newSimpleVerifierto verify a specific class.SimpleVerifier(Type currentClass, Type currentSuperClass, List<Type> currentClassInterfaces, boolean isInterface) Constructs a newSimpleVerifierto verify a specific class. -
方法概要
修饰符和类型方法说明protected Class<?>protected BasicValuegetElementValue(BasicValue objectArrayValue) protected Typeprotected booleanisArrayValue(BasicValue value) protected booleanisAssignableFrom(Type t, Type u) protected booleanisInterface(Type t) protected booleanisSubTypeOf(BasicValue value, BasicValue expected) merge(BasicValue v, BasicValue w) Merges two values.Creates a new value that represents the given type.voidsetClassLoader(ClassLoader loader) Set theClassLoaderwhich will be used to load referenced classes.从类继承的方法 org.beetl.ow2.asm.tree.analysis.BasicVerifier
binaryOperation, copyOperation, naryOperation, returnOperation, ternaryOperation, unaryOperation从类继承的方法 org.beetl.ow2.asm.tree.analysis.BasicInterpreter
newOperation
-
构造器详细资料
-
SimpleVerifier
public SimpleVerifier()Constructs a newSimpleVerifier. -
SimpleVerifier
Constructs a newSimpleVerifierto 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<Type> currentClassInterfaces, boolean isInterface) Constructs a newSimpleVerifierto 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.
-
SimpleVerifier
-
-
方法详细资料
-
setClassLoader
Set theClassLoaderwhich will be used to load referenced classes. This is useful if you are verifying multiple interdependent classes.- 参数:
loader- aClassLoaderto use
-
newValue
从类复制的说明:InterpreterCreates a new value that represents the given type. Called for method parameters (includingthis), exception handler variable and withnulltype for variables reserved by long and double types.- 覆盖:
newValue在类中BasicInterpreter- 参数:
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
- 覆盖:
isArrayValue在类中BasicVerifier
-
getElementValue
- 覆盖:
getElementValue在类中BasicVerifier- 抛出:
AnalyzerException
-
isSubTypeOf
- 覆盖:
isSubTypeOf在类中BasicVerifier
-
merge
从类复制的说明:InterpreterMerges 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).- 覆盖:
merge在类中BasicInterpreter- 参数:
v- a value.w- another value.- 返回:
- the merged value. If the merged value is equal to v, this method must return v.
-
isInterface
-
getSuperClass
-
isAssignableFrom
-
getClass
-