|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.logicalcobwebs.asm.CodeAdapter org.logicalcobwebs.cglib.core.RemappingCodeVisitor org.logicalcobwebs.cglib.core.CodeEmitter
public class CodeEmitter
Nested Class Summary | |
---|---|
private static class |
CodeEmitter.State
|
Field Summary | |
---|---|
static int |
ADD
|
static int |
AND
|
private static Signature |
BOOLEAN_VALUE
|
private ClassEmitter |
ce
|
private static Signature |
CHAR_VALUE
|
private static Signature |
CSTRUCT_NULL
|
private static Signature |
CSTRUCT_STRING
|
static int |
DIV
|
private static Signature |
DOUBLE_VALUE
|
static int |
EQ
|
private static Signature |
FLOAT_VALUE
|
static int |
GE
|
static int |
GT
|
private static Signature |
INT_VALUE
|
static int |
LE
|
private static Signature |
LONG_VALUE
|
static int |
LT
|
static int |
MUL
|
static int |
NE
|
static int |
NEG
|
static int |
OR
|
static int |
REM
|
private CodeEmitter.State |
state
|
static int |
SUB
|
static int |
USHR
|
static int |
XOR
|
Fields inherited from class org.logicalcobwebs.asm.CodeAdapter |
---|
cv |
Constructor Summary | |
---|---|
CodeEmitter(ClassEmitter ce,
CodeVisitor cv,
int access,
Signature sig,
Type[] exceptionTypes)
|
|
CodeEmitter(CodeEmitter wrap)
|
Method Summary | |
---|---|
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 |
define_attribute(Attribute attrs)
|
void |
dup_x1()
|
void |
dup_x2()
|
void |
dup()
|
void |
dup2_x1()
|
void |
dup2_x2()
|
void |
dup2()
|
(package private) void |
emit_field(int opcode,
Type ctype,
java.lang.String name,
Type ftype)
|
private void |
emit_invoke(int opcode,
Type type,
Signature sig)
|
private void |
emit_type(int opcode,
Type type)
|
void |
end_method()
|
ClassEmitter |
getClassEmitter()
|
void |
getfield(java.lang.String name)
|
void |
getfield(Type owner,
java.lang.String name,
Type type)
|
Type |
getReturnType()
|
Signature |
getSignature()
|
void |
getstatic(Type owner,
java.lang.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(java.lang.reflect.Method method)
|
private static boolean |
isSorted(int[] keys)
|
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)
|
private void |
load_local(Type t,
int pos)
|
void |
load_this()
|
Label |
make_label()
|
Local |
make_local()
|
Local |
make_local(Type type)
|
(package private) Label |
mark()
|
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(java.lang.String value)
|
void |
putfield(java.lang.String name)
|
void |
putfield(Type owner,
java.lang.String name,
Type type)
|
void |
putstatic(Type owner,
java.lang.String name,
Type type)
|
void |
return_value()
|
private int |
skipArgs(int numArgs)
|
void |
store_local(Local local)
|
private void |
store_local(Type t,
int pos)
|
void |
super_getfield(java.lang.String name,
Type type)
|
void |
super_getstatic(java.lang.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(java.lang.String name,
Type type)
|
void |
super_putstatic(java.lang.String name,
Type type)
|
void |
swap()
|
void |
swap(Type prev,
Type type)
|
void |
throw_exception(Type type,
java.lang.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. |
Methods inherited from class org.logicalcobwebs.cglib.core.RemappingCodeVisitor |
---|
nextLocal, visitIincInsn, visitLocalVariable, visitVarInsn |
Methods inherited from class org.logicalcobwebs.asm.CodeAdapter |
---|
visitAttribute, visitFieldInsn, visitInsn, visitIntInsn, visitJumpInsn, visitLabel, visitLdcInsn, visitLineNumber, visitLookupSwitchInsn, visitMethodInsn, visitMultiANewArrayInsn, visitTableSwitchInsn, visitTryCatchBlock, visitTypeInsn |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
private static final Signature BOOLEAN_VALUE
private static final Signature CHAR_VALUE
private static final Signature LONG_VALUE
private static final Signature DOUBLE_VALUE
private static final Signature FLOAT_VALUE
private static final Signature INT_VALUE
private static final Signature CSTRUCT_NULL
private static final Signature CSTRUCT_STRING
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
private ClassEmitter ce
private CodeEmitter.State state
Constructor Detail |
---|
CodeEmitter(ClassEmitter ce, CodeVisitor cv, int access, Signature sig, Type[] exceptionTypes)
public CodeEmitter(CodeEmitter wrap)
Method Detail |
---|
public boolean isStaticHook()
public Signature getSignature()
public Type getReturnType()
public ClassEmitter getClassEmitter()
public void end_method()
public Block begin_block()
public void catch_exception(Block block, Type exception)
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 if_cmp(Type type, 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 swap(Type prev, Type type)
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(java.lang.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)
private int skipArgs(int numArgs)
private void load_local(Type t, int pos)
private void store_local(Type t, int pos)
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(java.lang.String name)
public void putfield(java.lang.String name)
public void super_getfield(java.lang.String name, Type type)
public void super_putfield(java.lang.String name, Type type)
public void super_getstatic(java.lang.String name, Type type)
public void super_putstatic(java.lang.String name, Type type)
public void getfield(Type owner, java.lang.String name, Type type)
public void putfield(Type owner, java.lang.String name, Type type)
public void getstatic(Type owner, java.lang.String name, Type type)
public void putstatic(Type owner, java.lang.String name, Type type)
void emit_field(int opcode, Type ctype, java.lang.String name, Type ftype)
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()
private void emit_invoke(int opcode, Type type, Signature sig)
public void invoke_interface(Type owner, Signature sig)
public void invoke_virtual(Type owner, Signature sig)
public void invoke_static(Type owner, Signature sig)
public void invoke_virtual_this(Signature sig)
public void invoke_static_this(Signature sig)
public void invoke_constructor(Type type, 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)
private void emit_type(int opcode, 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 Local make_local(Type type)
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)
private static boolean isSorted(int[] keys)
public void mark(Label label)
Label mark()
public void push(boolean value)
public void not()
public void throw_exception(Type type, java.lang.String msg)
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)
CodeVisitor
visitMaxs
in interface CodeVisitor
visitMaxs
in class RemappingCodeVisitor
maxStack
- maximum stack size of the method.maxLocals
- maximum number of local variables for the method.public void invoke(java.lang.reflect.Method method)
public void define_attribute(Attribute attrs)
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |