public class InvocationMethodFactory extends MethodFactory implements org.objectweb.asm.Opcodes
MethodFactory| Modifier and Type | Class and Description |
|---|---|
(package private) static class |
InvocationMethodFactory.DescriptorInfo |
MethodFactory.MethodDefiningCallback| Modifier and Type | Field and Description |
|---|---|
static int |
ARGS_INDEX
The lvar index of the method args on the call
|
private static java.lang.String |
BLOCK_CALL_SIG |
private static java.lang.String |
BLOCK_CALL_SIG19 |
static int |
BLOCK_INDEX
The lvar index of the passed-in Block on the call
|
static int |
CLASS_INDEX
The lvar index of the RubyClass being invoked against
|
protected JRubyClassLoader |
classLoader
The classloader to use for code loading
|
static java.lang.Class<CompiledBlockCallback19> |
COMPILED_BLOCK_19_INTERFACE
The interface used for compiled Ruby 1.9+ block handles.
|
static java.lang.String |
COMPILED_BLOCK_19_INTERFACE_NAME
The pathname of the interface for compiled Ruby block handles.
|
private static java.lang.Class<CompiledBlockCallback> |
COMPILED_BLOCK_SUPER_CLASS
The class used for the super class of compiled Ruby block handles.
|
private static java.lang.String |
COMPILED_BLOCK_SUPER_CLASS_NAME
The pathname of the super class for compiled Ruby block handles.
|
private static java.lang.String |
COMPILED_CALL_SIG
The outward call signature for compiled Ruby method handles.
|
private static java.lang.String |
COMPILED_CALL_SIG_BLOCK
The outward call signature for compiled Ruby method handles.
|
private static java.lang.String |
COMPILED_CALL_SIG_ONE
The outward arity-zero call-with-block signature for compiled Ruby method handles.
|
private static java.lang.String |
COMPILED_CALL_SIG_ONE_BLOCK
The outward arity-zero call-with-block signature for compiled Ruby method handles.
|
private static java.lang.String |
COMPILED_CALL_SIG_THREE
The outward arity-zero call-with-block signature for compiled Ruby method handles.
|
private static java.lang.String |
COMPILED_CALL_SIG_THREE_BLOCK
The outward arity-zero call-with-block signature for compiled Ruby method handles.
|
private static java.lang.String |
COMPILED_CALL_SIG_TWO
The outward arity-zero call-with-block signature for compiled Ruby method handles.
|
private static java.lang.String |
COMPILED_CALL_SIG_TWO_BLOCK
The outward arity-zero call-with-block signature for compiled Ruby method handles.
|
private static java.lang.String |
COMPILED_CALL_SIG_ZERO
The outward arity-zero call-with-block signature for compiled Ruby method handles.
|
private static java.lang.String |
COMPILED_CALL_SIG_ZERO_BLOCK
The outward arity-zero call-with-block signature for compiled Ruby method handles.
|
private static java.lang.Class |
COMPILED_SUPER_CLASS
The class used for the super class of compiled Ruby method handles.
|
private static java.lang.String |
COMPILED_SUPER_CLASS_NAME
The pathname of the super class for compiled Ruby method handles.
|
private static boolean |
DEBUG |
private boolean |
haveWarnedUser
Whether we've informed the user that we've seen undefined methods; this
is to avoid a flood of repetitive information.
|
private static java.lang.String |
JAVA_SUPER_SIG
The super constructor signature for Java-based method handles.
|
private static Logger |
LOG |
static int |
NAME_INDEX
The lvar index method name being invoked
|
static int |
RECEIVER_INDEX
The lvar index of the method-receiving object
|
private boolean |
seenUndefinedClasses
Whether this factory has seen undefined methods already.
|
protected java.lang.Object |
syncObject
An object to sync against when loading classes, to avoid dups
|
static int |
THIS_INDEX
The lvar index of "this"
|
static int |
THREADCONTEXT_INDEX
The lvar index of the passed-in ThreadContext
|
CAN_LOAD_BYTECODE, COMPILED_METHOD_PARAMSAALOAD, AASTORE, ACC_ABSTRACT, ACC_ANNOTATION, ACC_BRIDGE, ACC_DEPRECATED, ACC_ENUM, ACC_FINAL, ACC_INTERFACE, ACC_MANDATED, ACC_MODULE, ACC_NATIVE, ACC_OPEN, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_STATIC, ACC_STATIC_PHASE, ACC_STRICT, ACC_SUPER, ACC_SYNCHRONIZED, ACC_SYNTHETIC, ACC_TRANSIENT, ACC_TRANSITIVE, ACC_VARARGS, ACC_VOLATILE, ACONST_NULL, ALOAD, ANEWARRAY, ARETURN, ARRAYLENGTH, ASM4, ASM5, ASM6, ASM7_EXPERIMENTAL, ASTORE, ATHROW, BALOAD, BASTORE, BIPUSH, CALOAD, CASTORE, CHECKCAST, D2F, D2I, D2L, DADD, DALOAD, DASTORE, DCMPG, DCMPL, DCONST_0, DCONST_1, DDIV, DLOAD, DMUL, DNEG, DOUBLE, DREM, DRETURN, DSTORE, DSUB, DUP, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, F_APPEND, F_CHOP, F_FULL, F_NEW, F_SAME, F_SAME1, F2D, F2I, F2L, FADD, FALOAD, FASTORE, FCMPG, FCMPL, FCONST_0, FCONST_1, FCONST_2, FDIV, FLOAD, FLOAT, FMUL, FNEG, FREM, FRETURN, FSTORE, FSUB, GETFIELD, GETSTATIC, GOTO, H_GETFIELD, H_GETSTATIC, H_INVOKEINTERFACE, H_INVOKESPECIAL, H_INVOKESTATIC, H_INVOKEVIRTUAL, H_NEWINVOKESPECIAL, H_PUTFIELD, H_PUTSTATIC, 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, IMUL, INEG, INSTANCEOF, INTEGER, INVOKEDYNAMIC, INVOKEINTERFACE, INVOKESPECIAL, INVOKESTATIC, INVOKEVIRTUAL, IOR, IREM, IRETURN, ISHL, ISHR, ISTORE, ISUB, IUSHR, IXOR, JSR, L2D, L2F, L2I, LADD, LALOAD, LAND, LASTORE, LCMP, LCONST_0, LCONST_1, LDC, LDIV, LLOAD, LMUL, LNEG, LONG, LOOKUPSWITCH, LOR, LREM, LRETURN, LSHL, LSHR, LSTORE, LSUB, LUSHR, LXOR, MONITORENTER, MONITOREXIT, MULTIANEWARRAY, NEW, NEWARRAY, NOP, NULL, POP, POP2, PUTFIELD, PUTSTATIC, RET, RETURN, SALOAD, SASTORE, SIPUSH, SWAP, T_BOOLEAN, T_BYTE, T_CHAR, T_DOUBLE, T_FLOAT, T_INT, T_LONG, T_SHORT, TABLESWITCH, TOP, UNINITIALIZED_THIS, V_PREVIEW_EXPERIMENTAL, V1_1, V1_2, V1_3, V1_4, V1_5, V1_6, V1_7, V1_8, V10, V11, V9| Constructor and Description |
|---|
InvocationMethodFactory(java.lang.ClassLoader classLoader)
Construct a new InvocationMethodFactory using the specified classloader
to load code.
|
| Modifier and Type | Method and Description |
|---|---|
private void |
addAnnotatedMethodInvoker(org.objectweb.asm.ClassWriter cw,
java.lang.String callName,
java.lang.String superClass,
java.util.List<JavaMethodDescriptor> descs) |
private SkinnyMethodAdapter |
beginMethod(org.objectweb.asm.ClassWriter cw,
java.lang.String methodName,
int specificArity,
boolean block) |
private void |
checkArity(JRubyMethod jrubyMethod,
SkinnyMethodAdapter method,
int specificArity)
Emit code to check the arity of a call to a Java-based method.
|
private void |
createAnnotatedMethodInvocation(JavaMethodDescriptor desc,
SkinnyMethodAdapter method,
java.lang.String superClass,
int specificArity,
boolean block) |
private org.objectweb.asm.ClassWriter |
createBlockCtor(java.lang.String namePath,
java.lang.String classname) |
private org.objectweb.asm.ClassWriter |
createBlockCtor19(java.lang.String namePath,
java.lang.String classname) |
private org.objectweb.asm.ClassWriter |
createCompiledCtor(java.lang.String namePath,
java.lang.String shortPath,
java.lang.String sup) |
private org.objectweb.asm.ClassWriter |
createJavaMethodCtor(java.lang.String namePath,
java.lang.String sup,
java.lang.String parameterDesc) |
private java.lang.Class |
determineSuperclass(InvocationMethodFactory.DescriptorInfo info) |
protected java.lang.Class |
endCall(org.objectweb.asm.ClassWriter cw,
java.lang.String name) |
protected byte[] |
endCallOffline(org.objectweb.asm.ClassWriter cw) |
protected java.lang.Class |
endCallWithBytes(byte[] classBytes,
java.lang.String name) |
protected java.lang.Class |
endClass(org.objectweb.asm.ClassWriter cw,
java.lang.String name) |
protected byte[] |
endClassOffline(org.objectweb.asm.ClassWriter cw) |
protected java.lang.Class |
endClassWithBytes(byte[] code,
java.lang.String name) |
DynamicMethod |
getAnnotatedMethod(RubyModule implementationClass,
JavaMethodDescriptor desc)
Use code generation to provide a method handle based on an annotated Java
method.
|
DynamicMethod |
getAnnotatedMethod(RubyModule implementationClass,
java.util.List<JavaMethodDescriptor> descs)
Use code generation to provide a method handle based on an annotated Java
method.
|
java.lang.Class |
getAnnotatedMethodClass(java.util.List<JavaMethodDescriptor> descs)
Use code generation to provide a method handle based on an annotated Java
method.
|
CompiledBlockCallback |
getBlockCallback(java.lang.String method,
java.lang.String file,
int line,
java.lang.Object scriptObject)
Get a CompiledBlockCallback for the specified block
|
CompiledBlockCallback19 |
getBlockCallback19(java.lang.String method,
java.lang.String file,
int line,
java.lang.Object scriptObject)
Get a CompiledBlockCallback for the specified block
|
byte[] |
getBlockCallback19Offline(java.lang.String method,
java.lang.String file,
int line,
java.lang.String classname)
Get a CompiledBlockCallback for the specified block, returning the bytes
but not loading the class.
|
static java.lang.String |
getBlockCallbackName(java.lang.String typePathString,
java.lang.String method) |
byte[] |
getBlockCallbackOffline(java.lang.String method,
java.lang.String file,
int line,
java.lang.String classname)
Get a CompiledBlockCallback for the specified block, returning the bytes
but not loading the class.
|
static java.lang.String |
getCompiledCallbackName(java.lang.String typePath,
java.lang.String method) |
DynamicMethod |
getCompiledMethod(RubyModule implementationClass,
java.lang.String rubyName,
java.lang.String javaName,
Arity arity,
Visibility visibility,
StaticScope scope,
java.lang.Object scriptObject,
CallConfiguration callConfig,
ISourcePosition position,
java.lang.String parameterDesc)
Use code generation to provide a method handle for a compiled Ruby method.
|
DynamicMethod |
getCompiledMethodLazily(RubyModule implementationClass,
java.lang.String rubyName,
java.lang.String javaName,
Arity arity,
Visibility visibility,
StaticScope scope,
java.lang.Object scriptObject,
CallConfiguration callConfig,
ISourcePosition position,
java.lang.String parameterDesc)
Use code generation to provide a method handle for a compiled Ruby method.
|
byte[] |
getCompiledMethodOffline(java.lang.String RubyName,
java.lang.String method,
java.lang.String className,
java.lang.String invokerPath,
Arity arity,
StaticScope scope,
CallConfiguration callConfig,
java.lang.String filename,
int line)
Use code generation to provide a method handle for a compiled Ruby method.
|
static java.lang.String |
getPostMethod(CallConfiguration callConfig) |
private java.lang.String |
getPreMethod(CallConfiguration callConfig) |
private java.lang.String |
getPreSignature(CallConfiguration callConfig) |
private void |
invokeCallConfigPost(SkinnyMethodAdapter mv,
java.lang.String superClass,
CallConfiguration callConfig) |
private void |
invokeCallConfigPre(SkinnyMethodAdapter mv,
java.lang.String superClass,
int specificArity,
boolean block,
CallConfiguration callConfig) |
private void |
invokeCCallTrace(SkinnyMethodAdapter method,
int traceBoolIndex) |
private void |
invokeCReturnTrace(SkinnyMethodAdapter method,
int traceBoolIndex) |
private void |
invokeTraceCompiledPost(SkinnyMethodAdapter mv,
java.lang.String superClass,
int traceBoolIndex) |
private void |
invokeTraceCompiledPre(SkinnyMethodAdapter mv,
java.lang.String superClass,
int traceBoolIndex,
java.lang.String filename,
int line) |
private void |
loadArguments(SkinnyMethodAdapter mv,
JavaMethodDescriptor desc,
int specificArity) |
private void |
loadArgumentWithCast(SkinnyMethodAdapter mv,
int argNumber,
java.lang.Class coerceType) |
private void |
loadBlock(SkinnyMethodAdapter mv,
int specificArity,
boolean getsBlock)
load the block argument from the correct position.
|
private void |
loadBlockForPre(SkinnyMethodAdapter mv,
int specificArity,
boolean getsBlock)
load block argument for pre() call.
|
private void |
loadReceiver(java.lang.String typePath,
JavaMethodDescriptor desc,
SkinnyMethodAdapter mv) |
void |
prepareAnnotatedMethod(RubyModule implementationClass,
JavaMethod javaMethod,
JavaMethodDescriptor desc)
Use code generation to provide a method handle based on an annotated Java
method.
|
private void |
prepareForPre(SkinnyMethodAdapter mv,
int specificArity,
boolean block,
CallConfiguration callConfig) |
private SkinnyMethodAdapter |
startBlockCall(org.objectweb.asm.ClassWriter cw) |
private SkinnyMethodAdapter |
startBlockCall19(org.objectweb.asm.ClassWriter cw) |
private java.lang.Class |
tryBlockCallback19Class(java.lang.String name,
java.lang.Class expectedInterface) |
private java.lang.Class |
tryBlockCallbackClass(java.lang.String name,
java.lang.Class expectedSuperclass) |
private java.lang.Class |
tryClass(java.lang.String name,
java.lang.Class targetClass,
java.lang.Class expectedSuperclass) |
createFactoryprivate static final Logger LOG
private static final boolean DEBUG
private static final java.lang.Class COMPILED_SUPER_CLASS
private static final java.lang.String COMPILED_SUPER_CLASS_NAME
private static final java.lang.Class<CompiledBlockCallback> COMPILED_BLOCK_SUPER_CLASS
private static final java.lang.String COMPILED_BLOCK_SUPER_CLASS_NAME
public static final java.lang.Class<CompiledBlockCallback19> COMPILED_BLOCK_19_INTERFACE
public static final java.lang.String COMPILED_BLOCK_19_INTERFACE_NAME
private static final java.lang.String COMPILED_CALL_SIG
private static final java.lang.String COMPILED_CALL_SIG_BLOCK
private static final java.lang.String COMPILED_CALL_SIG_ZERO_BLOCK
private static final java.lang.String COMPILED_CALL_SIG_ZERO
private static final java.lang.String COMPILED_CALL_SIG_ONE_BLOCK
private static final java.lang.String COMPILED_CALL_SIG_ONE
private static final java.lang.String COMPILED_CALL_SIG_TWO_BLOCK
private static final java.lang.String COMPILED_CALL_SIG_TWO
private static final java.lang.String COMPILED_CALL_SIG_THREE_BLOCK
private static final java.lang.String COMPILED_CALL_SIG_THREE
private static final java.lang.String BLOCK_CALL_SIG
private static final java.lang.String BLOCK_CALL_SIG19
private static final java.lang.String JAVA_SUPER_SIG
public static final int THIS_INDEX
public static final int THREADCONTEXT_INDEX
public static final int RECEIVER_INDEX
public static final int CLASS_INDEX
public static final int NAME_INDEX
public static final int ARGS_INDEX
public static final int BLOCK_INDEX
protected final JRubyClassLoader classLoader
protected final java.lang.Object syncObject
private boolean seenUndefinedClasses
private boolean haveWarnedUser
public InvocationMethodFactory(java.lang.ClassLoader classLoader)
classLoader - The classloader to use, or to wrap if it is not a
JRubyClassLoader instance.public DynamicMethod getCompiledMethodLazily(RubyModule implementationClass, java.lang.String rubyName, java.lang.String javaName, Arity arity, Visibility visibility, StaticScope scope, java.lang.Object scriptObject, CallConfiguration callConfig, ISourcePosition position, java.lang.String parameterDesc)
getCompiledMethodLazily in class MethodFactoryimplementationClass - The class to which the method will be bound.rubyName - The Ruby method name to which the method will bindjavaName - The name of the methodarity - The Arity of the methodvisibility - The method's visibility on the target type.scope - The methods static scoping information.scriptObject - An instace of the target compiled method class.callConfig - The call configuration to use for this method.MethodFactory.getCompiledMethod(org.jruby.RubyModule, java.lang.String, java.lang.String, org.jruby.runtime.Arity, org.jruby.runtime.Visibility, org.jruby.parser.StaticScope, java.lang.Object, org.jruby.internal.runtime.methods.CallConfiguration, org.jruby.lexer.yacc.ISourcePosition, java.lang.String)public static java.lang.String getCompiledCallbackName(java.lang.String typePath,
java.lang.String method)
public DynamicMethod getCompiledMethod(RubyModule implementationClass, java.lang.String rubyName, java.lang.String javaName, Arity arity, Visibility visibility, StaticScope scope, java.lang.Object scriptObject, CallConfiguration callConfig, ISourcePosition position, java.lang.String parameterDesc)
getCompiledMethod in class MethodFactoryimplementationClass - The class to which the method will be bound.rubyName - The Ruby method name to which the method will bindjavaName - The name of the methodarity - The Arity of the methodvisibility - The method's visibility on the target type.scope - The methods static scoping information.scriptObject - An instace of the target compiled method class.callConfig - The call configuration to use for this method.position - The position to use when generating traceable handles.MethodFactory.getCompiledMethod(org.jruby.RubyModule, java.lang.String, java.lang.String, org.jruby.runtime.Arity, org.jruby.runtime.Visibility, org.jruby.parser.StaticScope, java.lang.Object, org.jruby.internal.runtime.methods.CallConfiguration, org.jruby.lexer.yacc.ISourcePosition, java.lang.String)public byte[] getCompiledMethodOffline(java.lang.String RubyName,
java.lang.String method,
java.lang.String className,
java.lang.String invokerPath,
Arity arity,
StaticScope scope,
CallConfiguration callConfig,
java.lang.String filename,
int line)
getCompiledMethodOffline in class MethodFactoryRubyName - The Ruby method name to which the method will bindmethod - The name of the methodclassName - The path-like (with / instead of .) name of the classinvokerPath - The path-line name of the invoker to generatearity - The Arity of the methodscope - The methods static scoping information.callConfig - The call configuration to use for this method.MethodFactory.getCompiledMethod(org.jruby.RubyModule, java.lang.String, java.lang.String, org.jruby.runtime.Arity, org.jruby.runtime.Visibility, org.jruby.parser.StaticScope, java.lang.Object, org.jruby.internal.runtime.methods.CallConfiguration, org.jruby.lexer.yacc.ISourcePosition, java.lang.String)public DynamicMethod getAnnotatedMethod(RubyModule implementationClass, java.util.List<JavaMethodDescriptor> descs)
getAnnotatedMethod in class MethodFactoryimplementationClass - The target class or module on which the method
will be bound.MethodFactory.getAnnotatedMethod(org.jruby.RubyModule, java.util.List<org.jruby.anno.JavaMethodDescriptor>)public java.lang.Class getAnnotatedMethodClass(java.util.List<JavaMethodDescriptor> descs) throws java.lang.Exception
java.lang.ExceptionMethodFactory.getAnnotatedMethod(org.jruby.RubyModule, java.util.List<org.jruby.anno.JavaMethodDescriptor>)private java.lang.Class determineSuperclass(InvocationMethodFactory.DescriptorInfo info)
public DynamicMethod getAnnotatedMethod(RubyModule implementationClass, JavaMethodDescriptor desc)
getAnnotatedMethod in class MethodFactoryimplementationClass - The target class or module on which the method
will be bound.desc - A JavaMethodDescriptor describing the target methodMethodFactory.getAnnotatedMethod(org.jruby.RubyModule, java.util.List<org.jruby.anno.JavaMethodDescriptor>)public static java.lang.String getBlockCallbackName(java.lang.String typePathString,
java.lang.String method)
public CompiledBlockCallback getBlockCallback(java.lang.String method, java.lang.String file, int line, java.lang.Object scriptObject)
MethodFactorygetBlockCallback in class MethodFactorymethod - The name of the methodscriptObject - The object in which the method can be foundpublic byte[] getBlockCallbackOffline(java.lang.String method,
java.lang.String file,
int line,
java.lang.String classname)
MethodFactorygetBlockCallbackOffline in class MethodFactorymethod - The name of the methodclassname - The /-based name of the class containing the methodpublic CompiledBlockCallback19 getBlockCallback19(java.lang.String method, java.lang.String file, int line, java.lang.Object scriptObject)
MethodFactorygetBlockCallback19 in class MethodFactorymethod - The name of the methodscriptObject - The object in which the method can be foundpublic byte[] getBlockCallback19Offline(java.lang.String method,
java.lang.String file,
int line,
java.lang.String classname)
MethodFactorygetBlockCallback19Offline in class MethodFactorymethod - The name of the methodclassname - The /-based name of the class containing the methodprivate SkinnyMethodAdapter startBlockCall(org.objectweb.asm.ClassWriter cw)
private SkinnyMethodAdapter startBlockCall19(org.objectweb.asm.ClassWriter cw)
private org.objectweb.asm.ClassWriter createBlockCtor(java.lang.String namePath,
java.lang.String classname)
private org.objectweb.asm.ClassWriter createBlockCtor19(java.lang.String namePath,
java.lang.String classname)
public void prepareAnnotatedMethod(RubyModule implementationClass, JavaMethod javaMethod, JavaMethodDescriptor desc)
private void checkArity(JRubyMethod jrubyMethod, SkinnyMethodAdapter method, int specificArity)
jrubyMethod - The annotation of the called methodmethod - The code generator for the handle being createdprivate org.objectweb.asm.ClassWriter createCompiledCtor(java.lang.String namePath,
java.lang.String shortPath,
java.lang.String sup)
private org.objectweb.asm.ClassWriter createJavaMethodCtor(java.lang.String namePath,
java.lang.String sup,
java.lang.String parameterDesc)
throws java.lang.Exception
java.lang.Exceptionprivate void invokeCallConfigPre(SkinnyMethodAdapter mv, java.lang.String superClass, int specificArity, boolean block, CallConfiguration callConfig)
private void invokeCallConfigPost(SkinnyMethodAdapter mv, java.lang.String superClass, CallConfiguration callConfig)
private void prepareForPre(SkinnyMethodAdapter mv, int specificArity, boolean block, CallConfiguration callConfig)
private java.lang.String getPreMethod(CallConfiguration callConfig)
private java.lang.String getPreSignature(CallConfiguration callConfig)
public static java.lang.String getPostMethod(CallConfiguration callConfig)
private void loadArguments(SkinnyMethodAdapter mv, JavaMethodDescriptor desc, int specificArity)
private void loadArgumentWithCast(SkinnyMethodAdapter mv, int argNumber, java.lang.Class coerceType)
private void loadBlockForPre(SkinnyMethodAdapter mv, int specificArity, boolean getsBlock)
private void loadBlock(SkinnyMethodAdapter mv, int specificArity, boolean getsBlock)
private void loadReceiver(java.lang.String typePath,
JavaMethodDescriptor desc,
SkinnyMethodAdapter mv)
private java.lang.Class tryClass(java.lang.String name,
java.lang.Class targetClass,
java.lang.Class expectedSuperclass)
private java.lang.Class tryBlockCallbackClass(java.lang.String name,
java.lang.Class expectedSuperclass)
private java.lang.Class tryBlockCallback19Class(java.lang.String name,
java.lang.Class expectedInterface)
protected java.lang.Class endCall(org.objectweb.asm.ClassWriter cw,
java.lang.String name)
protected java.lang.Class endCallWithBytes(byte[] classBytes,
java.lang.String name)
protected byte[] endCallOffline(org.objectweb.asm.ClassWriter cw)
protected java.lang.Class endClass(org.objectweb.asm.ClassWriter cw,
java.lang.String name)
protected java.lang.Class endClassWithBytes(byte[] code,
java.lang.String name)
protected byte[] endClassOffline(org.objectweb.asm.ClassWriter cw)
private SkinnyMethodAdapter beginMethod(org.objectweb.asm.ClassWriter cw, java.lang.String methodName, int specificArity, boolean block)
private void addAnnotatedMethodInvoker(org.objectweb.asm.ClassWriter cw,
java.lang.String callName,
java.lang.String superClass,
java.util.List<JavaMethodDescriptor> descs)
private void createAnnotatedMethodInvocation(JavaMethodDescriptor desc, SkinnyMethodAdapter method, java.lang.String superClass, int specificArity, boolean block)
private void invokeCCallTrace(SkinnyMethodAdapter method, int traceBoolIndex)
private void invokeCReturnTrace(SkinnyMethodAdapter method, int traceBoolIndex)
private void invokeTraceCompiledPre(SkinnyMethodAdapter mv, java.lang.String superClass, int traceBoolIndex, java.lang.String filename, int line)
private void invokeTraceCompiledPost(SkinnyMethodAdapter mv, java.lang.String superClass, int traceBoolIndex)