private static MethodHandle tryDispatchDirect(JRubyCallSite site, RubyClass cls, DynamicMethod method) { String[] realName = {site.name()}; method = unwrapMethod(method, realName); for (HandleGenerator generator : HANDLE_GENERATORS) { if (generator.canGenerate(site, cls, method)) { return generator.generate(site, cls, method, realName[0]); } } throw new IndirectBindingException("no direct path available for " + method.getClass().getName()); }
private static MethodHandle tryDispatchDirect(JRubyCallSite site, RubyClass cls, DynamicMethod method) { String[] realName = {site.name()}; method = unwrapMethod(method, realName); for (HandleGenerator generator : HANDLE_GENERATORS) { if (generator.canGenerate(site, cls, method)) { return generator.generate(site, cls, method, realName[0]); } } throw new IndirectBindingException("no direct path available for " + method.getClass().getName()); }