|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.mvel2.asm.MethodVisitor
org.mvel2.asm.tree.MethodNode
org.mvel2.asm.commons.JSRInlinerAdapter
public class JSRInlinerAdapter
A MethodVisitor that removes JSR instructions and
inlines the referenced subroutines.
Explanation of how it works TODO
| Field Summary |
|---|
| Fields inherited from class org.mvel2.asm.tree.MethodNode |
|---|
access, annotationDefault, attrs, desc, exceptions, instructions, invisibleAnnotations, invisibleLocalVariableAnnotations, invisibleParameterAnnotations, invisibleTypeAnnotations, localVariables, maxLocals, maxStack, name, parameters, signature, tryCatchBlocks, visibleAnnotations, visibleLocalVariableAnnotations, visibleParameterAnnotations, visibleTypeAnnotations |
| Fields inherited from class org.mvel2.asm.MethodVisitor |
|---|
api, mv |
| Constructor Summary | |
|---|---|
protected |
JSRInlinerAdapter(int api,
MethodVisitor mv,
int access,
String name,
String desc,
String signature,
String[] exceptions)
Creates a new JSRInliner. |
|
JSRInlinerAdapter(MethodVisitor mv,
int access,
String name,
String desc,
String signature,
String[] exceptions)
Creates a new JSRInliner. |
| Method Summary | |
|---|---|
void |
visitEnd()
If any JSRs were seen, triggers the inlining process. |
void |
visitJumpInsn(int opcode,
Label lbl)
Detects a JSR instruction and sets a flag to indicate we will need to do inlining. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public JSRInlinerAdapter(MethodVisitor mv,
int access,
String name,
String desc,
String signature,
String[] exceptions)
JSRInlinerAdapter(int, MethodVisitor, int, String, String, String, String[])
version.
mv - the MethodVisitor to send the resulting inlined
method code to (use null for none).access - the method's access flags (see Opcodes). This
parameter also indicates if the method is synthetic and/or
deprecated.name - the method's name.desc - the method's descriptor (see Type).signature - the method's signature. May be null.exceptions - the internal names of the method's exception classes (see
getInternalName). May be
null.
IllegalStateException - If a subclass calls this constructor.
protected JSRInlinerAdapter(int api,
MethodVisitor mv,
int access,
String name,
String desc,
String signature,
String[] exceptions)
api - the ASM API version implemented by this visitor. Must be one
of Opcodes.ASM4 or Opcodes.ASM5.mv - the MethodVisitor to send the resulting inlined
method code to (use null for none).access - the method's access flags (see Opcodes). This
parameter also indicates if the method is synthetic and/or
deprecated.name - the method's name.desc - the method's descriptor (see Type).signature - the method's signature. May be null.exceptions - the internal names of the method's exception classes (see
getInternalName). May be
null.| Method Detail |
|---|
public void visitJumpInsn(int opcode,
Label lbl)
visitJumpInsn in class MethodNodeopcode - 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.lbl - the operand of the instruction to be visited. This operand is
a label that designates the instruction to which the jump
instruction may jump.public void visitEnd()
visitEnd in class MethodNode
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||