public class InvocationLinker
extends java.lang.Object
| Modifier and Type | Class and Description |
|---|---|
static class |
InvocationLinker.AttrReaderGenerator |
static class |
InvocationLinker.AttrWriterGenerator |
static class |
InvocationLinker.CoreCallGenerator |
static class |
InvocationLinker.FFIGenerator |
static interface |
InvocationLinker.HandleGenerator |
static class |
InvocationLinker.HandleMethodGenerator |
private static class |
InvocationLinker.IndirectBindingException |
static class |
InvocationLinker.JavaCallGenerator |
static class |
InvocationLinker.RubyCallGenerator |
| Modifier and Type | Field and Description |
|---|---|
private static java.lang.invoke.MethodHandle |
BLOCK_ESCAPE |
private static com.headius.invokebinder.Signature |
DYNAMIC_CALL_SIG |
private static com.headius.invokebinder.Signature |
DYNAMIC_CALL_SIG_1ARG |
private static com.headius.invokebinder.Signature |
DYNAMIC_CALL_SIG_1ARG_BLOCK |
private static com.headius.invokebinder.Signature |
DYNAMIC_CALL_SIG_2ARG |
private static com.headius.invokebinder.Signature |
DYNAMIC_CALL_SIG_2ARG_BLOCK |
private static com.headius.invokebinder.Signature |
DYNAMIC_CALL_SIG_3ARG |
private static com.headius.invokebinder.Signature |
DYNAMIC_CALL_SIG_3ARG_BLOCK |
private static com.headius.invokebinder.Signature |
DYNAMIC_CALL_SIG_BLOCK |
private static com.headius.invokebinder.Signature |
DYNAMIC_CALL_SIG_NARG |
private static com.headius.invokebinder.Signature |
DYNAMIC_CALL_SIG_NARG_BLOCK |
private static com.headius.invokebinder.Signature |
DYNAMIC_METHOD_SIG |
private static com.headius.invokebinder.Signature |
DYNAMIC_METHOD_SIG_1ARG |
private static com.headius.invokebinder.Signature |
DYNAMIC_METHOD_SIG_1ARG_BLOCK |
private static com.headius.invokebinder.Signature |
DYNAMIC_METHOD_SIG_2ARG |
private static com.headius.invokebinder.Signature |
DYNAMIC_METHOD_SIG_2ARG_BLOCK |
private static com.headius.invokebinder.Signature |
DYNAMIC_METHOD_SIG_3ARG |
private static com.headius.invokebinder.Signature |
DYNAMIC_METHOD_SIG_3ARG_BLOCK |
private static com.headius.invokebinder.Signature |
DYNAMIC_METHOD_SIG_BLOCK |
private static com.headius.invokebinder.Signature |
DYNAMIC_METHOD_SIG_NARG |
private static com.headius.invokebinder.Signature |
DYNAMIC_METHOD_SIG_NARG_BLOCK |
private static java.lang.invoke.MethodHandle |
FAIL_0 |
private static java.lang.invoke.MethodHandle |
FAIL_0_B |
private static java.lang.invoke.MethodHandle |
FAIL_1 |
private static java.lang.invoke.MethodHandle |
FAIL_1_B |
private static java.lang.invoke.MethodHandle |
FAIL_2 |
private static java.lang.invoke.MethodHandle |
FAIL_2_B |
private static java.lang.invoke.MethodHandle |
FAIL_3 |
private static java.lang.invoke.MethodHandle |
FAIL_3_B |
private static java.lang.invoke.MethodHandle |
FAIL_N |
private static java.lang.invoke.MethodHandle |
FAIL_N_B |
private static java.lang.invoke.MethodHandle[] |
FAILS |
private static java.lang.invoke.MethodHandle[] |
FAILS_B |
private static java.lang.invoke.MethodHandle |
FALLBACK_0 |
private static java.lang.invoke.MethodHandle |
FALLBACK_0_B |
private static java.lang.invoke.MethodHandle |
FALLBACK_1 |
private static java.lang.invoke.MethodHandle |
FALLBACK_1_B |
private static java.lang.invoke.MethodHandle |
FALLBACK_2 |
private static java.lang.invoke.MethodHandle |
FALLBACK_2_B |
private static java.lang.invoke.MethodHandle |
FALLBACK_3 |
private static java.lang.invoke.MethodHandle |
FALLBACK_3_B |
private static java.lang.invoke.MethodHandle |
FALLBACK_N |
private static java.lang.invoke.MethodHandle |
FALLBACK_N_B |
private static com.headius.invokebinder.Signature |
FALLBACK_SIG |
private static com.headius.invokebinder.Signature |
FALLBACK_SIG_1ARG |
private static com.headius.invokebinder.Signature |
FALLBACK_SIG_1ARG_BLOCK |
private static com.headius.invokebinder.Signature |
FALLBACK_SIG_2ARG |
private static com.headius.invokebinder.Signature |
FALLBACK_SIG_2ARG_BLOCK |
private static com.headius.invokebinder.Signature |
FALLBACK_SIG_3ARG |
private static com.headius.invokebinder.Signature |
FALLBACK_SIG_3ARG_BLOCK |
private static com.headius.invokebinder.Signature |
FALLBACK_SIG_BLOCK |
private static com.headius.invokebinder.Signature |
FALLBACK_SIG_NARG |
private static com.headius.invokebinder.Signature |
FALLBACK_SIG_NARG_BLOCK |
private static java.lang.invoke.MethodHandle[] |
FALLBACKS |
private static java.lang.invoke.MethodHandle[] |
FALLBACKS_B |
private static java.lang.invoke.MethodHandle |
HANDLE_BREAK_JUMP |
private static java.util.List<InvocationLinker.HandleGenerator> |
HANDLE_GENERATORS |
private static java.lang.invoke.MethodHandle |
IS_JAVA_SUBCLASS |
private static Logger |
LOG |
private static java.lang.invoke.MethodHandle |
PGC |
private static java.lang.invoke.MethodHandle |
TARGET_0 |
private static java.lang.invoke.MethodHandle |
TARGET_0_B |
private static java.lang.invoke.MethodHandle |
TARGET_1 |
private static java.lang.invoke.MethodHandle |
TARGET_1_B |
private static java.lang.invoke.MethodHandle |
TARGET_2 |
private static java.lang.invoke.MethodHandle |
TARGET_2_B |
private static java.lang.invoke.MethodHandle |
TARGET_3 |
private static java.lang.invoke.MethodHandle |
TARGET_3_B |
private static java.lang.invoke.MethodHandle |
TARGET_N |
private static java.lang.invoke.MethodHandle |
TARGET_N_B |
private static java.lang.invoke.MethodHandle |
TEST |
private static java.lang.invoke.MethodHandle |
TEST_CLASS |
private static java.lang.invoke.MethodHandle |
TEST_GENERATION |
private static java.lang.invoke.MethodHandle |
TEST_METACLASS |
| Constructor and Description |
|---|
InvocationLinker() |
| Modifier and Type | Method and Description |
|---|---|
private static java.lang.invoke.MethodHandle |
addOrRemoveBlock(JRubyCallSite site,
java.lang.invoke.MethodHandle nativeTarget) |
private static <T> T[] |
arrayOf(T... values) |
static void |
blockEscape(Block block) |
static IRubyObject |
booleanOrNil(Ruby runtime,
java.lang.Boolean b) |
static void |
checkArity(int required,
int optional,
boolean rest,
ThreadContext context,
IRubyObject caller,
IRubyObject self,
IRubyObject[] args) |
static void |
checkArity(int required,
int optional,
boolean rest,
ThreadContext context,
IRubyObject caller,
IRubyObject self,
IRubyObject[] args,
Block block) |
private static java.lang.invoke.MethodHandle |
createAttrReaderHandle(JRubyCallSite site,
RubyClass cls,
VariableAccessor accessor) |
private static java.lang.invoke.MethodHandle |
createAttrWriterHandle(JRubyCallSite site,
RubyClass cls,
VariableAccessor accessor) |
private static java.lang.invoke.MethodHandle |
createFail(java.lang.invoke.MethodHandle fail,
JRubyCallSite site,
java.lang.String name,
DynamicMethod method) |
private static java.lang.invoke.MethodHandle |
createFFIHandle(JRubyCallSite site,
DynamicMethod method) |
private static java.lang.invoke.MethodHandle |
createGWT(com.headius.invokebinder.SmartHandle test,
java.lang.invoke.MethodHandle target,
java.lang.invoke.MethodHandle fallback,
CacheEntry entry,
JRubyCallSite site,
boolean curryFallback) |
private static java.lang.invoke.MethodHandle |
createJavaHandle(java.lang.invoke.CallSite site,
DynamicMethod method) |
private static java.lang.invoke.MethodHandle |
createNativeHandle(Ruby runtime,
JRubyCallSite site,
DynamicMethod method,
java.lang.String name) |
private static java.lang.invoke.MethodHandle |
createRubyHandle(JRubyCallSite site,
DynamicMethod method,
java.lang.String name) |
private static java.lang.invoke.MethodHandle |
dynamicCallTarget(com.headius.invokebinder.Signature from,
com.headius.invokebinder.Signature to) |
static IRubyObject |
fail(JRubyCallSite site,
ThreadContext context,
IRubyObject caller,
IRubyObject self) |
static IRubyObject |
fail(JRubyCallSite site,
ThreadContext context,
IRubyObject caller,
IRubyObject self,
Block block) |
static IRubyObject |
fail(JRubyCallSite site,
ThreadContext context,
IRubyObject caller,
IRubyObject self,
IRubyObject arg0) |
static IRubyObject |
fail(JRubyCallSite site,
ThreadContext context,
IRubyObject caller,
IRubyObject self,
IRubyObject[] args) |
static IRubyObject |
fail(JRubyCallSite site,
ThreadContext context,
IRubyObject caller,
IRubyObject self,
IRubyObject[] args,
Block block) |
static IRubyObject |
fail(JRubyCallSite site,
ThreadContext context,
IRubyObject caller,
IRubyObject self,
IRubyObject arg0,
Block block) |
static IRubyObject |
fail(JRubyCallSite site,
ThreadContext context,
IRubyObject caller,
IRubyObject self,
IRubyObject arg0,
IRubyObject arg1) |
static IRubyObject |
fail(JRubyCallSite site,
ThreadContext context,
IRubyObject caller,
IRubyObject self,
IRubyObject arg0,
IRubyObject arg1,
Block block) |
static IRubyObject |
fail(JRubyCallSite site,
ThreadContext context,
IRubyObject caller,
IRubyObject self,
IRubyObject arg0,
IRubyObject arg1,
IRubyObject arg2) |
static IRubyObject |
fail(JRubyCallSite site,
ThreadContext context,
IRubyObject caller,
IRubyObject self,
IRubyObject arg0,
IRubyObject arg1,
IRubyObject arg2,
Block block) |
static IRubyObject |
failIter(JRubyCallSite site,
ThreadContext context,
IRubyObject caller,
IRubyObject self,
Block block) |
static IRubyObject |
failIter(JRubyCallSite site,
ThreadContext context,
IRubyObject caller,
IRubyObject self,
IRubyObject[] args,
Block block) |
static IRubyObject |
failIter(JRubyCallSite site,
ThreadContext context,
IRubyObject caller,
IRubyObject self,
IRubyObject arg0,
Block block) |
static IRubyObject |
failIter(JRubyCallSite site,
ThreadContext context,
IRubyObject caller,
IRubyObject self,
IRubyObject arg0,
IRubyObject arg1,
Block block) |
static IRubyObject |
failIter(JRubyCallSite site,
ThreadContext context,
IRubyObject caller,
IRubyObject self,
IRubyObject arg0,
IRubyObject arg1,
IRubyObject arg2,
Block block) |
static IRubyObject |
fixnumOrNil(Ruby runtime,
java.lang.Byte b) |
static IRubyObject |
fixnumOrNil(Ruby runtime,
java.lang.Character c) |
static IRubyObject |
fixnumOrNil(Ruby runtime,
java.lang.Integer i) |
static IRubyObject |
fixnumOrNil(Ruby runtime,
java.lang.Long l) |
static IRubyObject |
fixnumOrNil(Ruby runtime,
java.lang.Short s) |
static IRubyObject |
floatOrNil(Ruby runtime,
java.lang.Double d) |
static IRubyObject |
floatOrNil(Ruby runtime,
java.lang.Float f) |
private static int |
getArgCount(java.lang.Class[] args,
boolean isStatic) |
private static java.lang.invoke.MethodHandle |
getDynamicMethodTarget(java.lang.invoke.MethodType callType,
int arity,
DynamicMethod method) |
static java.lang.invoke.MethodHandle |
getFramePost(com.headius.invokebinder.Signature signature,
CallConfiguration callConfig) |
static java.lang.invoke.MethodHandle |
getFramePre(com.headius.invokebinder.Signature signature,
CallConfiguration callConfig,
RubyModule implClass,
java.lang.String name,
StaticScope scope) |
static IRubyObject |
getLast(IRubyObject[] args) |
private static int |
getNativeArgCount(DynamicMethod method,
DynamicMethod.NativeCall nativeCall) |
private static int |
getRubyArgCount(java.lang.Class[] args) |
private static int |
getSiteCount(java.lang.Class[] args) |
private static java.lang.invoke.MethodHandle |
getTarget(JRubyCallSite site,
RubyClass cls,
CacheEntry entry,
int arity) |
static IRubyObject |
handleRedo(JumpException.RedoJump rj,
ThreadContext context) |
static IRubyObject |
handleReturn(JumpException.ReturnJump rj,
ThreadContext context) |
static java.lang.invoke.CallSite |
invocationBootstrap(java.lang.invoke.MethodHandles.Lookup lookup,
java.lang.String name,
java.lang.invoke.MethodType type,
java.lang.String file,
int line) |
static IRubyObject |
invocationFallback(JRubyCallSite site,
ThreadContext context,
IRubyObject caller,
IRubyObject self) |
static IRubyObject |
invocationFallback(JRubyCallSite site,
ThreadContext context,
IRubyObject caller,
IRubyObject self,
Block block) |
static IRubyObject |
invocationFallback(JRubyCallSite site,
ThreadContext context,
IRubyObject caller,
IRubyObject self,
IRubyObject arg0) |
static IRubyObject |
invocationFallback(JRubyCallSite site,
ThreadContext context,
IRubyObject caller,
IRubyObject self,
IRubyObject[] args) |
static IRubyObject |
invocationFallback(JRubyCallSite site,
ThreadContext context,
IRubyObject caller,
IRubyObject self,
IRubyObject[] args,
Block block) |
static IRubyObject |
invocationFallback(JRubyCallSite site,
ThreadContext context,
IRubyObject caller,
IRubyObject self,
IRubyObject arg0,
Block block) |
static IRubyObject |
invocationFallback(JRubyCallSite site,
ThreadContext context,
IRubyObject caller,
IRubyObject self,
IRubyObject arg0,
IRubyObject arg1) |
static IRubyObject |
invocationFallback(JRubyCallSite site,
ThreadContext context,
IRubyObject caller,
IRubyObject self,
IRubyObject arg0,
IRubyObject arg1,
Block block) |
static IRubyObject |
invocationFallback(JRubyCallSite site,
ThreadContext context,
IRubyObject caller,
IRubyObject self,
IRubyObject arg0,
IRubyObject arg1,
IRubyObject arg2) |
static IRubyObject |
invocationFallback(JRubyCallSite site,
ThreadContext context,
IRubyObject caller,
IRubyObject self,
IRubyObject arg0,
IRubyObject arg1,
IRubyObject arg2,
Block block) |
private static java.lang.String |
logMethod(DynamicMethod method) |
private static java.lang.Object |
nullValue(java.lang.Class type) |
private static java.lang.invoke.MethodHandle |
postProcess(JRubyCallSite site,
java.lang.invoke.MethodHandle target) |
private static java.lang.invoke.MethodHandle |
postProcessNativeHandle(java.lang.invoke.MethodHandle nativeTarget,
JRubyCallSite site,
DynamicMethod method,
boolean checkArity,
boolean rewriteStackTrace) |
static IRubyObject |
stringOrNil(Ruby runtime,
java.lang.CharSequence cs) |
static boolean |
subclassProxyTest(java.lang.Object target) |
static boolean |
testClass(java.lang.Object object,
java.lang.Class clazz) |
static boolean |
testGeneration(int token,
IRubyObject self) |
static boolean |
testMetaclass(RubyClass metaclass,
IRubyObject self) |
static boolean |
testRealClass(int id,
IRubyObject self) |
private static java.lang.invoke.MethodHandle |
tryDispatchDirect(JRubyCallSite site,
RubyClass cls,
DynamicMethod method) |
static DynamicMethod |
unwrapMethod(DynamicMethod method,
java.lang.String[] realName) |
private static java.lang.invoke.MethodHandle |
updateInvocationTarget(java.lang.invoke.MethodHandle target,
JRubyCallSite site,
IRubyObject self,
RubyModule selfClass,
java.lang.String name,
CacheEntry entry,
java.lang.invoke.SwitchPoint switchPoint,
boolean block,
int arity)
Update the given call site using the new target, wrapping with appropriate
guard and argument-juggling logic.
|
static IRubyObject |
valueOrNil(IRubyObject value,
IRubyObject nil) |
static java.lang.invoke.MethodHandle |
wrapWithFraming(com.headius.invokebinder.Signature signature,
CallConfiguration callConfig,
RubyModule implClass,
java.lang.String name,
java.lang.invoke.MethodHandle nativeTarget,
StaticScope scope) |
static IRubyObject |
yieldSpecificFallback(Block block,
ThreadContext context) |
static IRubyObject |
yieldSpecificFallback(Block block,
ThreadContext context,
IRubyObject arg0) |
static IRubyObject |
yieldSpecificFallback(Block block,
ThreadContext context,
IRubyObject arg0,
IRubyObject arg1) |
static IRubyObject |
yieldSpecificFallback(Block block,
ThreadContext context,
IRubyObject arg0,
IRubyObject arg1,
IRubyObject arg2) |
private static final Logger LOG
private static final java.util.List<InvocationLinker.HandleGenerator> HANDLE_GENERATORS
private static final java.lang.invoke.MethodHandle BLOCK_ESCAPE
private static final java.lang.invoke.MethodHandle HANDLE_BREAK_JUMP
private static final java.lang.invoke.MethodHandle IS_JAVA_SUBCLASS
private static final java.lang.invoke.MethodHandle PGC
private static final java.lang.invoke.MethodHandle TEST_GENERATION
private static final java.lang.invoke.MethodHandle TEST_METACLASS
private static final java.lang.invoke.MethodHandle TEST
private static final java.lang.invoke.MethodHandle TEST_CLASS
private static final com.headius.invokebinder.Signature DYNAMIC_CALL_SIG
private static final com.headius.invokebinder.Signature DYNAMIC_CALL_SIG_1ARG
private static final com.headius.invokebinder.Signature DYNAMIC_CALL_SIG_2ARG
private static final com.headius.invokebinder.Signature DYNAMIC_CALL_SIG_3ARG
private static final com.headius.invokebinder.Signature DYNAMIC_CALL_SIG_NARG
private static final com.headius.invokebinder.Signature DYNAMIC_CALL_SIG_BLOCK
private static final com.headius.invokebinder.Signature DYNAMIC_CALL_SIG_1ARG_BLOCK
private static final com.headius.invokebinder.Signature DYNAMIC_CALL_SIG_2ARG_BLOCK
private static final com.headius.invokebinder.Signature DYNAMIC_CALL_SIG_3ARG_BLOCK
private static final com.headius.invokebinder.Signature DYNAMIC_CALL_SIG_NARG_BLOCK
private static final com.headius.invokebinder.Signature DYNAMIC_METHOD_SIG
private static final com.headius.invokebinder.Signature DYNAMIC_METHOD_SIG_1ARG
private static final com.headius.invokebinder.Signature DYNAMIC_METHOD_SIG_2ARG
private static final com.headius.invokebinder.Signature DYNAMIC_METHOD_SIG_3ARG
private static final com.headius.invokebinder.Signature DYNAMIC_METHOD_SIG_NARG
private static final com.headius.invokebinder.Signature DYNAMIC_METHOD_SIG_BLOCK
private static final com.headius.invokebinder.Signature DYNAMIC_METHOD_SIG_1ARG_BLOCK
private static final com.headius.invokebinder.Signature DYNAMIC_METHOD_SIG_2ARG_BLOCK
private static final com.headius.invokebinder.Signature DYNAMIC_METHOD_SIG_3ARG_BLOCK
private static final com.headius.invokebinder.Signature DYNAMIC_METHOD_SIG_NARG_BLOCK
private static final java.lang.invoke.MethodHandle TARGET_0
private static final java.lang.invoke.MethodHandle TARGET_1
private static final java.lang.invoke.MethodHandle TARGET_2
private static final java.lang.invoke.MethodHandle TARGET_3
private static final java.lang.invoke.MethodHandle TARGET_N
private static final java.lang.invoke.MethodHandle TARGET_0_B
private static final java.lang.invoke.MethodHandle TARGET_1_B
private static final java.lang.invoke.MethodHandle TARGET_2_B
private static final java.lang.invoke.MethodHandle TARGET_3_B
private static final java.lang.invoke.MethodHandle TARGET_N_B
private static final com.headius.invokebinder.Signature FALLBACK_SIG
private static final com.headius.invokebinder.Signature FALLBACK_SIG_1ARG
private static final com.headius.invokebinder.Signature FALLBACK_SIG_2ARG
private static final com.headius.invokebinder.Signature FALLBACK_SIG_3ARG
private static final com.headius.invokebinder.Signature FALLBACK_SIG_NARG
private static final com.headius.invokebinder.Signature FALLBACK_SIG_BLOCK
private static final com.headius.invokebinder.Signature FALLBACK_SIG_1ARG_BLOCK
private static final com.headius.invokebinder.Signature FALLBACK_SIG_2ARG_BLOCK
private static final com.headius.invokebinder.Signature FALLBACK_SIG_3ARG_BLOCK
private static final com.headius.invokebinder.Signature FALLBACK_SIG_NARG_BLOCK
private static final java.lang.invoke.MethodHandle FALLBACK_0
private static final java.lang.invoke.MethodHandle FALLBACK_1
private static final java.lang.invoke.MethodHandle FALLBACK_2
private static final java.lang.invoke.MethodHandle FALLBACK_3
private static final java.lang.invoke.MethodHandle FALLBACK_N
private static final java.lang.invoke.MethodHandle FALLBACK_0_B
private static final java.lang.invoke.MethodHandle FALLBACK_1_B
private static final java.lang.invoke.MethodHandle FALLBACK_2_B
private static final java.lang.invoke.MethodHandle FALLBACK_3_B
private static final java.lang.invoke.MethodHandle FALLBACK_N_B
private static final java.lang.invoke.MethodHandle FAIL_0
private static final java.lang.invoke.MethodHandle FAIL_1
private static final java.lang.invoke.MethodHandle FAIL_2
private static final java.lang.invoke.MethodHandle FAIL_3
private static final java.lang.invoke.MethodHandle FAIL_N
private static final java.lang.invoke.MethodHandle FAIL_0_B
private static final java.lang.invoke.MethodHandle FAIL_1_B
private static final java.lang.invoke.MethodHandle FAIL_2_B
private static final java.lang.invoke.MethodHandle FAIL_3_B
private static final java.lang.invoke.MethodHandle FAIL_N_B
private static final java.lang.invoke.MethodHandle[] FALLBACKS
private static final java.lang.invoke.MethodHandle[] FAILS
private static final java.lang.invoke.MethodHandle[] FALLBACKS_B
private static final java.lang.invoke.MethodHandle[] FAILS_B
public static java.lang.invoke.CallSite invocationBootstrap(java.lang.invoke.MethodHandles.Lookup lookup,
java.lang.String name,
java.lang.invoke.MethodType type,
java.lang.String file,
int line)
throws java.lang.NoSuchMethodException,
java.lang.IllegalAccessException
java.lang.NoSuchMethodExceptionjava.lang.IllegalAccessExceptionpublic static IRubyObject invocationFallback(JRubyCallSite site, ThreadContext context, IRubyObject caller, IRubyObject self) throws java.lang.Throwable
java.lang.Throwablepublic static IRubyObject invocationFallback(JRubyCallSite site, ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject arg0) throws java.lang.Throwable
java.lang.Throwablepublic static IRubyObject invocationFallback(JRubyCallSite site, ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject arg0, IRubyObject arg1) throws java.lang.Throwable
java.lang.Throwablepublic static IRubyObject invocationFallback(JRubyCallSite site, ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject arg0, IRubyObject arg1, IRubyObject arg2) throws java.lang.Throwable
java.lang.Throwablepublic static IRubyObject invocationFallback(JRubyCallSite site, ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject[] args) throws java.lang.Throwable
java.lang.Throwablepublic static IRubyObject invocationFallback(JRubyCallSite site, ThreadContext context, IRubyObject caller, IRubyObject self, Block block) throws java.lang.Throwable
java.lang.Throwablepublic static IRubyObject invocationFallback(JRubyCallSite site, ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject arg0, Block block) throws java.lang.Throwable
java.lang.Throwablepublic static IRubyObject invocationFallback(JRubyCallSite site, ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject arg0, IRubyObject arg1, Block block) throws java.lang.Throwable
java.lang.Throwablepublic static IRubyObject invocationFallback(JRubyCallSite site, ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject arg0, IRubyObject arg1, IRubyObject arg2, Block block) throws java.lang.Throwable
java.lang.Throwablepublic static IRubyObject invocationFallback(JRubyCallSite site, ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject[] args, Block block) throws java.lang.Throwable
java.lang.Throwableprivate static java.lang.invoke.MethodHandle updateInvocationTarget(java.lang.invoke.MethodHandle target,
JRubyCallSite site,
IRubyObject self,
RubyModule selfClass,
java.lang.String name,
CacheEntry entry,
java.lang.invoke.SwitchPoint switchPoint,
boolean block,
int arity)
public static IRubyObject yieldSpecificFallback(Block block, ThreadContext context) throws java.lang.Throwable
java.lang.Throwablepublic static IRubyObject yieldSpecificFallback(Block block, ThreadContext context, IRubyObject arg0) throws java.lang.Throwable
java.lang.Throwablepublic static IRubyObject yieldSpecificFallback(Block block, ThreadContext context, IRubyObject arg0, IRubyObject arg1) throws java.lang.Throwable
java.lang.Throwablepublic static IRubyObject yieldSpecificFallback(Block block, ThreadContext context, IRubyObject arg0, IRubyObject arg1, IRubyObject arg2) throws java.lang.Throwable
java.lang.Throwableprivate static java.lang.invoke.MethodHandle createFail(java.lang.invoke.MethodHandle fail,
JRubyCallSite site,
java.lang.String name,
DynamicMethod method)
private static java.lang.invoke.MethodHandle createGWT(com.headius.invokebinder.SmartHandle test,
java.lang.invoke.MethodHandle target,
java.lang.invoke.MethodHandle fallback,
CacheEntry entry,
JRubyCallSite site,
boolean curryFallback)
private static int getNativeArgCount(DynamicMethod method, DynamicMethod.NativeCall nativeCall)
public static DynamicMethod unwrapMethod(DynamicMethod method, java.lang.String[] realName) throws InvocationLinker.IndirectBindingException
private static java.lang.invoke.MethodHandle tryDispatchDirect(JRubyCallSite site, RubyClass cls, DynamicMethod method)
private static java.lang.invoke.MethodHandle getTarget(JRubyCallSite site, RubyClass cls, CacheEntry entry, int arity)
private static java.lang.invoke.MethodHandle postProcessNativeHandle(java.lang.invoke.MethodHandle nativeTarget,
JRubyCallSite site,
DynamicMethod method,
boolean checkArity,
boolean rewriteStackTrace)
private static java.lang.invoke.MethodHandle addOrRemoveBlock(JRubyCallSite site, java.lang.invoke.MethodHandle nativeTarget)
public static void checkArity(int required,
int optional,
boolean rest,
ThreadContext context,
IRubyObject caller,
IRubyObject self,
IRubyObject[] args)
public static void checkArity(int required,
int optional,
boolean rest,
ThreadContext context,
IRubyObject caller,
IRubyObject self,
IRubyObject[] args,
Block block)
public static boolean testGeneration(int token,
IRubyObject self)
public static boolean testMetaclass(RubyClass metaclass, IRubyObject self)
public static boolean testRealClass(int id,
IRubyObject self)
public static boolean testClass(java.lang.Object object,
java.lang.Class clazz)
public static IRubyObject getLast(IRubyObject[] args)
public static void blockEscape(Block block)
private static java.lang.invoke.MethodHandle postProcess(JRubyCallSite site, java.lang.invoke.MethodHandle target)
public static IRubyObject fail(JRubyCallSite site, ThreadContext context, IRubyObject caller, IRubyObject self) throws java.lang.Throwable
java.lang.Throwablepublic static IRubyObject fail(JRubyCallSite site, ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject arg0) throws java.lang.Throwable
java.lang.Throwablepublic static IRubyObject fail(JRubyCallSite site, ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject arg0, IRubyObject arg1) throws java.lang.Throwable
java.lang.Throwablepublic static IRubyObject fail(JRubyCallSite site, ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject arg0, IRubyObject arg1, IRubyObject arg2) throws java.lang.Throwable
java.lang.Throwablepublic static IRubyObject fail(JRubyCallSite site, ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject[] args) throws java.lang.Throwable
java.lang.Throwablepublic static IRubyObject fail(JRubyCallSite site, ThreadContext context, IRubyObject caller, IRubyObject self, Block block) throws java.lang.Throwable
java.lang.Throwablepublic static IRubyObject fail(JRubyCallSite site, ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject arg0, Block block) throws java.lang.Throwable
java.lang.Throwablepublic static IRubyObject fail(JRubyCallSite site, ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject arg0, IRubyObject arg1, Block block) throws java.lang.Throwable
java.lang.Throwablepublic static IRubyObject fail(JRubyCallSite site, ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject arg0, IRubyObject arg1, IRubyObject arg2, Block block) throws java.lang.Throwable
java.lang.Throwablepublic static IRubyObject fail(JRubyCallSite site, ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject[] args, Block block) throws java.lang.Throwable
java.lang.Throwablepublic static IRubyObject failIter(JRubyCallSite site, ThreadContext context, IRubyObject caller, IRubyObject self, Block block) throws java.lang.Throwable
java.lang.Throwablepublic static IRubyObject failIter(JRubyCallSite site, ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject arg0, Block block) throws java.lang.Throwable
java.lang.Throwablepublic static IRubyObject failIter(JRubyCallSite site, ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject arg0, IRubyObject arg1, Block block) throws java.lang.Throwable
java.lang.Throwablepublic static IRubyObject failIter(JRubyCallSite site, ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject arg0, IRubyObject arg1, IRubyObject arg2, Block block) throws java.lang.Throwable
java.lang.Throwablepublic static IRubyObject failIter(JRubyCallSite site, ThreadContext context, IRubyObject caller, IRubyObject self, IRubyObject[] args, Block block) throws java.lang.Throwable
java.lang.Throwableprivate static java.lang.invoke.MethodHandle getDynamicMethodTarget(java.lang.invoke.MethodType callType,
int arity,
DynamicMethod method)
private static java.lang.invoke.MethodHandle createJavaHandle(java.lang.invoke.CallSite site,
DynamicMethod method)
public static boolean subclassProxyTest(java.lang.Object target)
private static java.lang.Object nullValue(java.lang.Class type)
public static IRubyObject fixnumOrNil(Ruby runtime, java.lang.Byte b)
public static IRubyObject fixnumOrNil(Ruby runtime, java.lang.Short s)
public static IRubyObject fixnumOrNil(Ruby runtime, java.lang.Character c)
public static IRubyObject fixnumOrNil(Ruby runtime, java.lang.Integer i)
public static IRubyObject fixnumOrNil(Ruby runtime, java.lang.Long l)
public static IRubyObject floatOrNil(Ruby runtime, java.lang.Float f)
public static IRubyObject floatOrNil(Ruby runtime, java.lang.Double d)
public static IRubyObject booleanOrNil(Ruby runtime, java.lang.Boolean b)
public static IRubyObject stringOrNil(Ruby runtime, java.lang.CharSequence cs)
private static java.lang.invoke.MethodHandle createNativeHandle(Ruby runtime, JRubyCallSite site, DynamicMethod method, java.lang.String name)
private static java.lang.invoke.MethodHandle createFFIHandle(JRubyCallSite site, DynamicMethod method)
private static java.lang.invoke.MethodHandle createAttrReaderHandle(JRubyCallSite site, RubyClass cls, VariableAccessor accessor)
public static IRubyObject valueOrNil(IRubyObject value, IRubyObject nil)
private static java.lang.invoke.MethodHandle createAttrWriterHandle(JRubyCallSite site, RubyClass cls, VariableAccessor accessor)
private static java.lang.invoke.MethodHandle createRubyHandle(JRubyCallSite site, DynamicMethod method, java.lang.String name)
public static java.lang.invoke.MethodHandle wrapWithFraming(com.headius.invokebinder.Signature signature,
CallConfiguration callConfig,
RubyModule implClass,
java.lang.String name,
java.lang.invoke.MethodHandle nativeTarget,
StaticScope scope)
public static IRubyObject handleReturn(JumpException.ReturnJump rj, ThreadContext context)
public static IRubyObject handleRedo(JumpException.RedoJump rj, ThreadContext context)
private static <T> T[] arrayOf(T... values)
public static java.lang.invoke.MethodHandle getFramePre(com.headius.invokebinder.Signature signature,
CallConfiguration callConfig,
RubyModule implClass,
java.lang.String name,
StaticScope scope)
public static java.lang.invoke.MethodHandle getFramePost(com.headius.invokebinder.Signature signature,
CallConfiguration callConfig)
private static int getArgCount(java.lang.Class[] args,
boolean isStatic)
private static int getRubyArgCount(java.lang.Class[] args)
private static int getSiteCount(java.lang.Class[] args)
private static java.lang.String logMethod(DynamicMethod method)
private static java.lang.invoke.MethodHandle dynamicCallTarget(com.headius.invokebinder.Signature from,
com.headius.invokebinder.Signature to)