Top Fields Constructors Methods
org.python.compiler

public Class Code

extends MethodVisitor
implements Opcodes
Class Inheritance
All Implemented Interfaces
org.objectweb.asm.Opcodes
Imports
java.util.BitSet, .Vector, org.objectweb.asm.AnnotationVisitor, .Attribute, .Handle, .Label, .MethodVisitor, .Opcodes

Field Summary

Modifier and TypeField and Description
pack-priv int
pack-priv BitSet
pack-priv String[]
pack-priv MethodVisitor
pack-priv int
pack-priv int
pack-priv String
Inherited from org.objectweb.asm.MethodVisitor:
api

Constructor Summary

AccessConstructor and Description
public
Code(MethodVisitor mv, String sig, int access)

Method Summary

Modifier and TypeMethod and Description
public void
public void
public void
public void
aload(int index)

public void
public void
public void
public void
astore(int index)

public void
public void
public void
public void
bipush(int value)

public void
public void
public void
dload(int index)

public void
public void
dup()

public void
dup2()

public void
public void
public void
public void
public void
public void
fload(int index)

public void
public void
freeLocal(int l)

public void
public Vector<String>
public void
getfield(String owner, String name, String type)

public int
public int
public int
public void
getstatic(String owner, String name, String type)

public void
goto_(Label label)

public void
iadd()

public void
public void
iconst(int value)

public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
ifeq(Label label)

public void
ifle(Label label)

public void
ifne(Label label)

public void
public void
ifnull(Label label)

public void
iinc()

public void
iload(int index)

public void
public void
invokeinterface(String owner, String name, String type)

public void
invokeinterface(String owner, String name, String type, boolean itf)

public void
invokespecial(String owner, String name, String type)

public void
invokestatic(String owner, String name, String type)

public void
invokevirtual(String owner, String name, String type)

public void
public void
istore(int index)

public void
isub()

public void
label(Label label)

public void
public void
ldc(Object cst)

public void
lload(int index)

public void
public void
new_(String type)

public void
newarray(int atype)

public void
nop()

public void
pop()

public void
pop2()

public void
putfield(String owner, String name, String type)

public void
putstatic(String owner, String name, String type)

public void
ret(int index)

public void
public void
setline(int line)

private int
sigSize(String sig, boolean includeReturn)

public void
sipush(int value)

public void
swap()

public void
public void
tableswitch(int arg0, int arg1, Label arg2, Label[] arg3)

public void
trycatch(Label start, Label end, Label handlerStart, String type)

public AnnotationVisitor
visitAnnotation(String
the class descriptor of the annotation class.
arg0
,
boolean
true if the annotation is visible at runtime.
arg1
)

Overrides org.objectweb.asm.MethodVisitor.visitAnnotation.

Visits an annotation of this method.

public AnnotationVisitor
visitAnnotationDefault()

Overrides org.objectweb.asm.MethodVisitor.visitAnnotationDefault.

Visits the default value of this annotation interface method.

public void
visitAttribute(Attribute
an attribute.
arg0
)

Overrides org.objectweb.asm.MethodVisitor.visitAttribute.

Visits a non standard attribute of this method.

public void
visitCode()

Overrides org.objectweb.asm.MethodVisitor.visitCode.

Starts the visit of the method's code, if any (i.e. non abstract method).

public void
visitEnd()

Overrides org.objectweb.asm.MethodVisitor.visitEnd.

Visits the end of the method.

public void
visitFieldInsn(int
the opcode of the type instruction to be visited. This opcode is either GETSTATIC, PUTSTATIC, GETFIELD or PUTFIELD.
arg0
,
String
the internal name of the field's owner class (see Type#getInternalName()).
arg1
,
String
the field's name.
arg2
,
String
the field's descriptor (see Type).
arg3
)

Overrides org.objectweb.asm.MethodVisitor.visitFieldInsn.

Visits a field instruction.

public void
visitFrame(int
the type of this stack map frame. Must be Opcodes#F_NEW for expanded frames, or Opcodes#F_FULL, Opcodes#F_APPEND, Opcodes#F_CHOP, Opcodes#F_SAME or Opcodes#F_APPEND, Opcodes#F_SAME1 for compressed frames.
arg0
,
int
the number of local variables in the visited frame. Long and double values count for one variable.
arg1
,
Object[]
the local variable types in this frame. This array must not be modified. Primitive types are represented by Opcodes#TOP, Opcodes#INTEGER, Opcodes#FLOAT, Opcodes#LONG, Opcodes#DOUBLE, Opcodes#NULL or Opcodes#UNINITIALIZED_THIS (long and double are represented by a single element). Reference types are represented by String objects (representing internal names, see Type#getInternalName()), and uninitialized types by Label objects (this label designates the NEW instruction that created this uninitialized value).
arg2
,
int
the number of operand stack elements in the visited frame. Long and double values count for one stack element.
arg3
,
Object[]
the operand stack types in this frame. This array must not be modified. Its content has the same format as the "local" array.
arg4
)

Overrides org.objectweb.asm.MethodVisitor.visitFrame.

Visits the current state of the local variables and operand stack elements.

public void
visitIincInsn(int
index of the local variable to be incremented.
arg0
,
int
amount to increment the local variable by.
arg1
)

Overrides org.objectweb.asm.MethodVisitor.visitIincInsn.

Visits an IINC instruction.

public void
visitInsn(int
the opcode of the instruction to be visited. This opcode is either NOP, ACONST_NULL, ICONST_M1, ICONST_0, ICONST_1, ICONST_2, ICONST_3, ICONST_4, ICONST_5, LCONST_0, LCONST_1, FCONST_0, FCONST_1, FCONST_2, DCONST_0, DCONST_1, IALOAD, LALOAD, FALOAD, DALOAD, AALOAD, BALOAD, CALOAD, SALOAD, IASTORE, LASTORE, FASTORE, DASTORE, AASTORE, BASTORE, CASTORE, SASTORE, POP, POP2, DUP, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, SWAP, IADD, LADD, FADD, DADD, ISUB, LSUB, FSUB, DSUB, IMUL, LMUL, FMUL, DMUL, IDIV, LDIV, FDIV, DDIV, IREM, LREM, FREM, DREM, INEG, LNEG, FNEG, DNEG, ISHL, LSHL, ISHR, LSHR, IUSHR, LUSHR, IAND, LAND, IOR, LOR, IXOR, LXOR, I2L, I2F, I2D, L2I, L2F, L2D, F2I, F2L, F2D, D2I, D2L, D2F, I2B, I2C, I2S, LCMP, FCMPL, FCMPG, DCMPL, DCMPG, IRETURN, LRETURN, FRETURN, DRETURN, ARETURN, RETURN, ARRAYLENGTH, ATHROW, MONITORENTER, or MONITOREXIT.
arg0
)

Overrides org.objectweb.asm.MethodVisitor.visitInsn.

Visits a zero operand instruction.

public void
visitIntInsn(int
the opcode of the instruction to be visited. This opcode is either BIPUSH, SIPUSH or NEWARRAY.
arg0
,
int
the operand of the instruction to be visited.
When opcode is BIPUSH, operand value should be between Byte.MIN_VALUE and Byte.MAX_VALUE.
When opcode is SIPUSH, operand value should be between Short.MIN_VALUE and Short.MAX_VALUE.
When opcode is NEWARRAY, operand value should be one of Opcodes#T_BOOLEAN, Opcodes#T_CHAR, Opcodes#T_FLOAT, Opcodes#T_DOUBLE, Opcodes#T_BYTE, Opcodes#T_SHORT, Opcodes#T_INT or Opcodes#T_LONG.
arg1
)

Overrides org.objectweb.asm.MethodVisitor.visitIntInsn.

Visits an instruction with a single int operand.

public void
visitInvokeDynamicInsn(String
the method's name.
name
,
String
the method's descriptor (see Type).
descriptor
,
Handle
the bootstrap method.
bsmHandle
,
Object...
the bootstrap method constant arguments. Each argument must be an Integer, Float, Long, Double, String, Type, Handle or ConstantDynamic value. This method is allowed to modify the content of the array so a caller should expect that this array may change.
bmsArgs
)

Overrides org.objectweb.asm.MethodVisitor.visitInvokeDynamicInsn.

Visits an invokedynamic instruction.

public void
visitJumpInsn(int
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.
arg0
,
Label
the operand of the instruction to be visited. This operand is a label that designates the instruction to which the jump instruction may jump.
arg1
)

Overrides org.objectweb.asm.MethodVisitor.visitJumpInsn.

Visits a jump instruction.

public void
visitLabel(Label
a Label object.
arg0
)

Overrides org.objectweb.asm.MethodVisitor.visitLabel.

Visits a label.

public void
visitLdcInsn(Object
the constant to be loaded on the stack. This parameter must be a non null Integer, a Float, a Long, a Double, a String, a Type of OBJECT or ARRAY sort for .class constants, for classes whose version is 49, a Type of METHOD sort for MethodType, a Handle for MethodHandle constants, for classes whose version is 51 or a ConstantDynamic for a constant dynamic for classes whose version is 55.
arg0
)

Overrides org.objectweb.asm.MethodVisitor.visitLdcInsn.

Visits a LDC instruction.

public void
visitLineNumber(int
a line number. This number refers to the source file from which the class was compiled.
arg0
,
Label
the first instruction corresponding to this line number.
arg1
)

Overrides org.objectweb.asm.MethodVisitor.visitLineNumber.

Visits a line number declaration.

public void
visitLocalVariable(String
the name of a local variable.
arg0
,
String
the type descriptor of this local variable.
arg1
,
String
the type signature of this local variable. May be null if the local variable type does not use generic types.
arg2
,
Label
the first instruction corresponding to the scope of this local variable (inclusive).
arg3
,
Label
the last instruction corresponding to the scope of this local variable (exclusive).
arg4
,
int
the local variable's index.
arg5
)

Overrides org.objectweb.asm.MethodVisitor.visitLocalVariable.

Visits a local variable declaration.

public void
visitLookupSwitchInsn(Label
beginning of the default handler block.
arg0
,
int[]
the values of the keys.
arg1
,
Label[]
beginnings of the handler blocks. labels[i] is the beginning of the handler block for the keys[i] key.
arg2
)

Overrides org.objectweb.asm.MethodVisitor.visitLookupSwitchInsn.

Visits a LOOKUPSWITCH instruction.

public void
visitMaxs(int
maximum stack size of the method.
arg0
,
int
maximum number of local variables for the method.
arg1
)

Overrides org.objectweb.asm.MethodVisitor.visitMaxs.

Visits the maximum stack size and the maximum number of local variables of the method.

public void
visitMethodInsn(int
the opcode of the type instruction to be visited. This opcode is either INVOKEVIRTUAL, INVOKESPECIAL, INVOKESTATIC or INVOKEINTERFACE.
arg0
,
String
the internal name of the method's owner class (see Type#getInternalName()).
arg1
,
String
the method's name.
arg2
,
String
the method's descriptor (see Type).
arg3
,
boolean
if the method's owner class is an interface.
itf
)

Overrides org.objectweb.asm.MethodVisitor.visitMethodInsn.

Visits a method instruction.

public void
visitMultiANewArrayInsn(String
an array type descriptor (see Type).
arg0
,
int
the number of dimensions of the array to allocate.
arg1
)

Overrides org.objectweb.asm.MethodVisitor.visitMultiANewArrayInsn.

Visits a MULTIANEWARRAY instruction.

public AnnotationVisitor
visitParameterAnnotation(int
the parameter index. This index must be strictly smaller than the number of parameters in the method descriptor, and strictly smaller than the parameter count specified in visitAnnotableParameterCount.

Important Note

a parameter index i is not required to correspond to the i'th parameter descriptor in the method descriptor, in particular in case of synthetic parameters (see https://docs.oracle.com/javase/specs/jvms/se9/html/jvms-4.html#jvms-4.7.18).

arg0
,
String
the class descriptor of the annotation class.
arg1
,
boolean
true if the annotation is visible at runtime.
arg2
)

Overrides org.objectweb.asm.MethodVisitor.visitParameterAnnotation.

Visits an annotation of a parameter this method.

public void
visitTableSwitchInsn(int
the minimum key value.
arg0
,
int
the maximum key value.
arg1
,
Label
beginning of the default handler block.
arg2
,
Label...
beginnings of the handler blocks. labels[i] is the beginning of the handler block for the min + i key.
arg3
)

Overrides org.objectweb.asm.MethodVisitor.visitTableSwitchInsn.

Visits a TABLESWITCH instruction.

public void
visitTryCatchBlock(Label
the beginning of the exception handler's scope (inclusive).
arg0
,
Label
the end of the exception handler's scope (exclusive).
arg1
,
Label
the beginning of the exception handler's code.
arg2
,
String
the internal name of the type of exceptions handled by the handler (see Type#getInternalName()), or null to catch any exceptions (for "finally" blocks).
arg3
)

Overrides org.objectweb.asm.MethodVisitor.visitTryCatchBlock.

Visits a try catch block.

public void
visitTypeInsn(int
the opcode of the type instruction to be visited. This opcode is either NEW, ANEWARRAY, CHECKCAST or INSTANCEOF.
arg0
,
String
the operand of the instruction to be visited. This operand must be the internal name of an object or array class (see Type#getInternalName()).
arg1
)

Overrides org.objectweb.asm.MethodVisitor.visitTypeInsn.

Visits a type instruction.

public void
visitVarInsn(int
the opcode of the local variable instruction to be visited. This opcode is either ILOAD, LLOAD, FLOAD, DLOAD, ALOAD, ISTORE, LSTORE, FSTORE, DSTORE, ASTORE or RET.
arg0
,
int
the operand of the instruction to be visited. This operand is the index of a local variable.
arg1
)

Overrides org.objectweb.asm.MethodVisitor.visitVarInsn.

Visits a local variable instruction.

Inherited from org.objectweb.asm.MethodVisitor:
getDelegatevisitAnnotableParameterCountvisitInsnAnnotationvisitLocalVariableAnnotationvisitMethodInsnvisitParametervisitTryCatchAnnotationvisitTypeAnnotation