public final class TransformAccessArrayField extends Transformer
| Modifier and Type | Field and Description |
|---|---|
private Frame[] |
frames |
private java.lang.String |
methodClassname |
private CodeConverter.ArrayAccessReplacementMethodNames |
names |
private int |
offset |
AALOAD, AASTORE, ACONST_NULL, ALOAD, ALOAD_0, ALOAD_1, ALOAD_2, ALOAD_3, ANEWARRAY, ARETURN, ARRAYLENGTH, ASTORE, ASTORE_0, ASTORE_1, ASTORE_2, ASTORE_3, ATHROW, BALOAD, BASTORE, BIPUSH, CALOAD, CASTORE, CHECKCAST, D2F, D2I, D2L, DADD, DALOAD, DASTORE, DCMPG, DCMPL, DCONST_0, DCONST_1, DDIV, DLOAD, DLOAD_0, DLOAD_1, DLOAD_2, DLOAD_3, DMUL, DNEG, DREM, DRETURN, DSTORE, DSTORE_0, DSTORE_1, DSTORE_2, DSTORE_3, 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, FLOAD_0, FLOAD_1, FLOAD_2, FLOAD_3, FMUL, FNEG, FREM, FRETURN, FSTORE, FSTORE_0, FSTORE_1, FSTORE_2, FSTORE_3, FSUB, GETFIELD, GETSTATIC, GOTO, GOTO_W, 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, ILOAD_0, ILOAD_1, ILOAD_2, ILOAD_3, IMUL, INEG, INSTANCEOF, INVOKEDYNAMIC, INVOKEINTERFACE, INVOKESPECIAL, INVOKESTATIC, INVOKEVIRTUAL, IOR, IREM, IRETURN, ISHL, ISHR, ISTORE, ISTORE_0, ISTORE_1, ISTORE_2, ISTORE_3, ISUB, IUSHR, IXOR, JSR, JSR_W, L2D, L2F, L2I, LADD, LALOAD, LAND, LASTORE, LCMP, LCONST_0, LCONST_1, LDC, LDC_W, LDC2_W, LDIV, LLOAD, LLOAD_0, LLOAD_1, LLOAD_2, LLOAD_3, LMUL, LNEG, LOOKUPSWITCH, LOR, LREM, LRETURN, LSHL, LSHR, LSTORE, LSTORE_0, LSTORE_1, LSTORE_2, LSTORE_3, LSUB, LUSHR, LXOR, MONITORENTER, MONITOREXIT, MULTIANEWARRAY, NEW, NEWARRAY, NOP, POP, POP2, PUTFIELD, PUTSTATIC, RET, RETURN, SALOAD, SASTORE, SIPUSH, STACK_GROW, SWAP, T_BOOLEAN, T_BYTE, T_CHAR, T_DOUBLE, T_FLOAT, T_INT, T_LONG, T_SHORT, TABLESWITCH, WIDE| Constructor and Description |
|---|
TransformAccessArrayField(Transformer next,
java.lang.String methodClassname,
CodeConverter.ArrayAccessReplacementMethodNames names) |
| Modifier and Type | Method and Description |
|---|---|
void |
clean() |
private Frame |
getFrame(int pos) |
private java.lang.String |
getLoadReplacementSignature(int opcode) |
private java.lang.String |
getMethodName(int opcode) |
private java.lang.String |
getStoreReplacementSignature(int opcode) |
private java.lang.String |
getTopType(int pos) |
private void |
initFrames(CtClass clazz,
MethodInfo minfo) |
void |
initialize(ConstPool cp,
CtClass clazz,
MethodInfo minfo) |
private int |
replace(ConstPool cp,
CodeIterator iterator,
int pos,
int opcode,
java.lang.String signature) |
int |
transform(CtClass tclazz,
int pos,
CodeIterator iterator,
ConstPool cp) |
private int |
updatePos(int pos,
int increment) |
extraLocals, extraStack, getNext, initializeprivate final java.lang.String methodClassname
private final CodeConverter.ArrayAccessReplacementMethodNames names
private Frame[] frames
private int offset
public TransformAccessArrayField(Transformer next, java.lang.String methodClassname, CodeConverter.ArrayAccessReplacementMethodNames names) throws NotFoundException
NotFoundExceptionpublic void initialize(ConstPool cp, CtClass clazz, MethodInfo minfo) throws CannotCompileException
initialize in class TransformerCannotCompileExceptionpublic void clean()
clean in class Transformerpublic int transform(CtClass tclazz, int pos, CodeIterator iterator, ConstPool cp) throws BadBytecode
transform in class TransformerBadBytecodeprivate Frame getFrame(int pos) throws BadBytecode
BadBytecodeprivate void initFrames(CtClass clazz, MethodInfo minfo) throws BadBytecode
BadBytecodeprivate int updatePos(int pos,
int increment)
private java.lang.String getTopType(int pos)
throws BadBytecode
BadBytecodeprivate int replace(ConstPool cp, CodeIterator iterator, int pos, int opcode, java.lang.String signature) throws BadBytecode
BadBytecodeprivate java.lang.String getMethodName(int opcode)
private java.lang.String getLoadReplacementSignature(int opcode)
throws BadBytecode
BadBytecodeprivate java.lang.String getStoreReplacementSignature(int opcode)
throws BadBytecode
BadBytecode