public class CodeEmitter extends LocalVariablesSorter
Modifier and Type | Field and Description |
---|---|
static int |
ADD |
static int |
AND |
static int |
DIV |
static int |
EQ |
static int |
GE |
static int |
GT |
static int |
LE |
static int |
LT |
static int |
MUL |
static int |
NE |
static int |
NEG |
static int |
OR |
static int |
REM |
static int |
SUB |
static int |
USHR |
static int |
XOR |
firstLocal
mv
Constructor and Description |
---|
CodeEmitter(CodeEmitter wrap) |
Modifier and Type | Method and Description |
---|---|
void |
aaload() |
void |
aaload(int index) |
void |
aastore() |
void |
aconst_null() |
void |
array_load(Type type) |
void |
array_store(Type type) |
void |
arraylength() |
void |
athrow() |
Block |
begin_block() |
void |
box(Type type)
If the argument is a primitive class, replaces the primitive value
on the top of the stack with the wrapped (Object) equivalent.
|
void |
cast_numeric(Type from,
Type to)
Casts from one primitive numeric type to another
|
void |
catch_exception(Block block,
Type exception) |
void |
checkcast_this() |
void |
checkcast(Type type) |
void |
create_arg_array()
Allocates and fills an Object[] array with the arguments to the
current method.
|
void |
dup_x1() |
void |
dup_x2() |
void |
dup() |
void |
dup2_x1() |
void |
dup2_x2() |
void |
dup2() |
void |
end_method() |
ClassEmitter |
getClassEmitter() |
void |
getfield(String name) |
void |
getfield(Type owner,
String name,
Type type) |
MethodInfo |
getMethodInfo() |
Type |
getReturnType() |
Signature |
getSignature() |
void |
getstatic(Type owner,
String name,
Type type) |
void |
goTo(Label label) |
void |
if_cmp(Type type,
int mode,
Label label) |
void |
if_icmp(int mode,
Label label) |
void |
if_jump(int mode,
Label label) |
void |
ifnonnull(Label label) |
void |
ifnull(Label label) |
void |
iinc(Local local,
int amount) |
void |
instance_of_this() |
void |
instance_of(Type type) |
void |
invoke_constructor_this() |
void |
invoke_constructor_this(Signature sig) |
void |
invoke_constructor(Type type) |
void |
invoke_constructor(Type type,
Signature sig) |
void |
invoke_interface(Type owner,
Signature sig) |
void |
invoke_static_this(Signature sig) |
void |
invoke_static(Type owner,
Signature sig) |
void |
invoke_virtual_this(Signature sig) |
void |
invoke_virtual(Type owner,
Signature sig) |
void |
invoke(MethodInfo method) |
void |
invoke(MethodInfo method,
Type virtualType) |
boolean |
isStaticHook() |
void |
load_arg(int index)
Pushes the specified argument of the current method onto the stack.
|
void |
load_args()
Pushes all of the arguments of the current method onto the stack.
|
void |
load_args(int fromArg,
int count) |
void |
load_local(Local local) |
void |
load_this() |
Label |
make_label() |
Local |
make_local() |
Local |
make_local(Type type) |
void |
mark(Label label) |
void |
math(int op,
Type type) |
void |
monitorenter() |
void |
monitorexit() |
void |
new_instance_this() |
void |
new_instance(Type type) |
void |
newarray() |
void |
newarray(Type type) |
void |
not()
Toggles the integer on the top of the stack from 1 to 0 or vice versa
|
void |
pop() |
void |
pop2() |
void |
process_switch(int[] keys,
ProcessSwitchCallback callback) |
void |
process_switch(int[] keys,
ProcessSwitchCallback callback,
boolean useTable) |
void |
push(boolean value) |
void |
push(double value) |
void |
push(float value) |
void |
push(int i) |
void |
push(long value) |
void |
push(String value) |
void |
putfield(String name) |
void |
putfield(Type owner,
String name,
Type type) |
void |
putstatic(Type owner,
String name,
Type type) |
void |
return_value() |
void |
store_local(Local local) |
void |
super_getfield(String name,
Type type) |
void |
super_getstatic(String name,
Type type) |
void |
super_invoke_constructor() |
void |
super_invoke_constructor(Signature sig) |
void |
super_invoke() |
void |
super_invoke(Signature sig) |
void |
super_putfield(String name,
Type type) |
void |
super_putstatic(String name,
Type type) |
void |
swap() |
void |
swap(Type prev,
Type type) |
void |
throw_exception(Type type,
String msg) |
void |
unbox_or_zero(Type type)
Unboxes the object on the top of the stack.
|
void |
unbox(Type type)
If the argument is a primitive class, replaces the object
on the top of the stack with the unwrapped (primitive)
equivalent.
|
void |
visitMaxs(int maxStack,
int maxLocals)
Visits the maximum stack size and the maximum number of local variables
of the method.
|
void |
zero_or_null(Type type)
Pushes a zero onto the stack if the argument is a primitive class, or a null otherwise.
|
newLocal, visitIincInsn, visitLocalVariable, visitVarInsn
visitAnnotation, visitAnnotationDefault, visitAttribute, visitCode, visitEnd, visitFieldInsn, visitFrame, visitInsn, visitIntInsn, visitJumpInsn, visitLabel, visitLdcInsn, visitLineNumber, visitLookupSwitchInsn, visitMethodInsn, visitMultiANewArrayInsn, visitParameterAnnotation, visitTableSwitchInsn, visitTryCatchBlock, visitTypeInsn
public static final int ADD
public static final int MUL
public static final int XOR
public static final int USHR
public static final int SUB
public static final int DIV
public static final int NEG
public static final int REM
public static final int AND
public static final int OR
public static final int GT
public static final int LT
public static final int GE
public static final int LE
public static final int NE
public static final int EQ
public CodeEmitter(CodeEmitter wrap)
public boolean isStaticHook()
public Signature getSignature()
public Type getReturnType()
public MethodInfo getMethodInfo()
public ClassEmitter getClassEmitter()
public void end_method()
public Block begin_block()
public void goTo(Label label)
public void ifnull(Label label)
public void ifnonnull(Label label)
public void if_jump(int mode, Label label)
public void if_icmp(int mode, Label label)
public void pop()
public void pop2()
public void dup()
public void dup2()
public void dup_x1()
public void dup_x2()
public void dup2_x1()
public void dup2_x2()
public void swap()
public void aconst_null()
public void monitorenter()
public void monitorexit()
public void math(int op, Type type)
public void array_load(Type type)
public void array_store(Type type)
public void cast_numeric(Type from, Type to)
public void push(int i)
public void push(long value)
public void push(float value)
public void push(double value)
public void push(String value)
public void newarray()
public void newarray(Type type)
public void arraylength()
public void load_this()
public void load_args()
public void load_arg(int index)
index
- the zero-based index into the argument listpublic void load_args(int fromArg, int count)
public void iinc(Local local, int amount)
public void store_local(Local local)
public void load_local(Local local)
public void return_value()
public void getfield(String name)
public void putfield(String name)
public void super_invoke()
public void super_invoke(Signature sig)
public void invoke_constructor(Type type)
public void super_invoke_constructor()
public void invoke_constructor_this()
public void invoke_virtual_this(Signature sig)
public void invoke_static_this(Signature sig)
public void invoke_constructor_this(Signature sig)
public void super_invoke_constructor(Signature sig)
public void new_instance_this()
public void new_instance(Type type)
public void aaload(int index)
public void aaload()
public void aastore()
public void athrow()
public Label make_label()
public Local make_local()
public void checkcast_this()
public void checkcast(Type type)
public void instance_of(Type type)
public void instance_of_this()
public void process_switch(int[] keys, ProcessSwitchCallback callback)
public void process_switch(int[] keys, ProcessSwitchCallback callback, boolean useTable)
public void mark(Label label)
public void push(boolean value)
public void not()
public void box(Type type)
type
- the class indicating the current type of the top stack valuepublic void unbox(Type type)
type
- the class indicating the desired type of the top stack valuepublic void create_arg_array()
public void zero_or_null(Type type)
public void unbox_or_zero(Type type)
public void visitMaxs(int maxStack, int maxLocals)
MethodVisitor
visitMaxs
in interface MethodVisitor
visitMaxs
in class LocalVariablesSorter
maxStack
- maximum stack size of the method.maxLocals
- maximum number of local variables for the method.public void invoke(MethodInfo method, Type virtualType)
public void invoke(MethodInfo method)
Copyright © 2018. All rights reserved.