Skip to content

Commit

Permalink
Showing 1 changed file with 6 additions and 4 deletions.
10 changes: 6 additions & 4 deletions core/src/main/java/org/jruby/java/dispatch/CallableSelector.java
Original file line number Diff line number Diff line change
@@ -174,7 +174,7 @@ private static <T extends ParameterTypes> T findMatchingCallableForArgs(final Ru
( implMethod = getFunctionalInterfaceMethod(msTypes[last]) ) != null ) {
mostSpecificArity = implMethod.getParameterTypes().length;
}
procArity = ((RubyProc) lastArg).getBlock().getSignature().arityValue();
procArity = procArityValue(lastArg);
}
else {
procArity = Integer.MIN_VALUE;
@@ -737,14 +737,16 @@ private static int argsHashCode(final IRubyObject[] args) {
}

private static int javaClassHashCode(final IRubyObject arg) {
// if ( arg == null ) return 0;
return arg.getJavaClass().hashCode();
}

private static int javaClassOrProcHashCode(final IRubyObject arg) {
// if ( arg == null ) return 0;
final Class<?> javaClass = arg.getJavaClass();
return javaClass == RubyProc.class ? ((RubyProc) arg).arity().hashCode() : javaClass.hashCode();
return javaClass == RubyProc.class ? 11 * procArityValue(arg) : javaClass.hashCode();
}

private static int procArityValue(final IRubyObject proc) {
return ((RubyProc) proc).getBlock().getSignature().arityValue();
}

private static Class<?> getJavaClass(final IRubyObject arg) {

0 comments on commit cd0d286

Please sign in to comment.