private static MethodHandle findStatic(Class target, String name, MethodType type) { return findStatic(lookup(), target, name, type); }
private static MethodHandle findStatic(Class target, String name, MethodType type) { return findStatic(lookup(), target, name, type); }
public static CallSite attrAssign(Lookup lookup, String name, MethodType type) { InvokeSite site = new InvokeSite(type, JavaNameMangler.demangleMethodName(name.split(":")[1])); MethodHandle handle = insertArguments( findStatic( lookup, Bootstrap.class, "attrAssign", type.insertParameterTypes(0, InvokeSite.class)), 0, site); site.setTarget(handle); return site; }
public static CallSite invokeSelf(Lookup lookup, String name, MethodType type) { InvokeSite site = new InvokeSite(type, JavaNameMangler.demangleMethodName(name.split(":")[1])); MethodHandle handle = insertArguments( findStatic( lookup, Bootstrap.class, "invokeSelf", type.insertParameterTypes(0, InvokeSite.class)), 0, site); site.setTarget(handle); return site; }
public static CallSite attrAssign(Lookup lookup, String name, MethodType type) { InvokeSite site = new InvokeSite(type, JavaNameMangler.demangleMethodName(name.split(":")[1])); MethodHandle handle = insertArguments( findStatic( lookup, Bootstrap.class, "attrAssign", type.insertParameterTypes(0, InvokeSite.class)), 0, site); site.setTarget(handle); return site; }
public static CallSite invoke(Lookup lookup, String name, MethodType type) { InvokeSite site = new InvokeSite(type, JavaNameMangler.demangleMethodName(name.split(":")[1])); MethodHandle handle = insertArguments( findStatic( lookup, Bootstrap.class, "invoke", type.insertParameterTypes(0, InvokeSite.class)), 0, site); site.setTarget(handle); return site; }
public static CallSite invokeSelf(Lookup lookup, String name, MethodType type) { InvokeSite site = new InvokeSite(type, JavaNameMangler.demangleMethodName(name.split(":")[1])); MethodHandle handle = insertArguments( findStatic( lookup, Bootstrap.class, "invokeSelf", type.insertParameterTypes(0, InvokeSite.class)), 0, site); site.setTarget(handle); return site; }
public static CallSite invoke(Lookup lookup, String name, MethodType type) { InvokeSite site = new InvokeSite(type, JavaNameMangler.demangleMethodName(name.split(":")[1])); MethodHandle handle = insertArguments( findStatic( lookup, Bootstrap.class, "invoke", type.insertParameterTypes(0, InvokeSite.class)), 0, site); site.setTarget(handle); return site; }
MethodHandle nullToNil = findStatic(Helpers.class, "nullToNil", methodType(IRubyObject.class, IRubyObject.class, IRubyObject.class)); nullToNil = insertArguments(nullToNil, 1, self.getRuntime().getNil()); nullToNil = explicitCastArguments(nullToNil, methodType(IRubyObject.class, Object.class)); if (site.getTarget() == null || site.chainCount() + 1 > RubyInstanceConfig.MAX_POLY_COUNT) { fallback = findStatic(InvokeDynamicSupport.class, "getVariableFallback", methodType(IRubyObject.class, VariableSite.class, IRubyObject.class)); fallback = fallback.bindTo(site); site.clearChainCount(); MethodHandle test = findStatic(InvocationLinker.class, "testRealClass", methodType(boolean.class, int.class, IRubyObject.class)); test = insertArguments(test, 0, accessor.getClassId());
MethodHandle nullToNil = findStatic(Helpers.class, "nullToNil", methodType(IRubyObject.class, IRubyObject.class, IRubyObject.class)); nullToNil = insertArguments(nullToNil, 1, self.getRuntime().getNil()); nullToNil = explicitCastArguments(nullToNil, methodType(IRubyObject.class, Object.class)); if (site.getTarget() == null || site.chainCount() + 1 > RubyInstanceConfig.MAX_POLY_COUNT) { fallback = findStatic(InvokeDynamicSupport.class, "getVariableFallback", methodType(IRubyObject.class, VariableSite.class, IRubyObject.class)); fallback = fallback.bindTo(site); site.clearChainCount(); MethodHandle test = findStatic(InvocationLinker.class, "testRealClass", methodType(boolean.class, int.class, IRubyObject.class)); test = insertArguments(test, 0, accessor.getClassId());
if (site.getTarget() == null || site.chainCount() + 1 > RubyInstanceConfig.MAX_POLY_COUNT) { fallback = findStatic(InvokeDynamicSupport.class, "setVariableFallback", methodType(void.class, VariableSite.class, IRubyObject.class, IRubyObject.class)); fallback = fallback.bindTo(site); site.clearChainCount(); MethodHandle test = findStatic(InvocationLinker.class, "testRealClass", methodType(boolean.class, int.class, IRubyObject.class)); test = insertArguments(test, 0, accessor.getClassId()); test = dropArguments(test, 1, IRubyObject.class);
if (site.getTarget() == null || site.chainCount() + 1 > RubyInstanceConfig.MAX_POLY_COUNT) { fallback = findStatic(InvokeDynamicSupport.class, "setVariableFallback", methodType(void.class, VariableSite.class, IRubyObject.class, IRubyObject.class)); fallback = fallback.bindTo(site); site.clearChainCount(); MethodHandle test = findStatic(InvocationLinker.class, "testRealClass", methodType(boolean.class, int.class, IRubyObject.class)); test = insertArguments(test, 0, accessor.getClassId()); test = dropArguments(test, 1, IRubyObject.class);