if (c1.isConvertible(context, arg1) && c2.isConvertible(context, arg2)) {
int retval = invoker.invokeIIrI(function, c1.intValue(context, arg1),
c2.intValue(context, arg2));
return resultConverter.fromNative(context, retval);
} else {
HeapInvocationBuffer buffer = new HeapInvocationBuffer(function);
m1.marshal(context, buffer, arg1);
m2.marshal(context, buffer, arg2);
return resultConverter.fromNative(context, invoker.invokeInt(function, buffer));
}
}