// Construct callback method
LocalVariableAllocator localVariableAllocator = new LocalVariableAllocator(nativeParameterClasses);
for (int i = 0; i < parameterTypes.length; ++i) {
FromNativeType parameterType = parameterTypes[i];
Class parameterClass = parameterType.effectiveJavaType();
if (!isParameterTypeSupported(parameterClass)) {
throw new IllegalArgumentException("unsupported closure parameter type " + parameterTypes[i].getDeclaredType());
}
AsmUtil.load(mv, nativeParameterClasses[i], parameterVariables[i]);
if (!parameterClass.isPrimitive()) {
emitFromNativeConversion(builder, mv, parameterTypes[i], nativeParameterClasses[i]);
} else {
convertPrimitive(mv, nativeParameterClasses[i], parameterClass, parameterType.getNativeType());
}
}
// dispatch to java method
if (callMethod.getDeclaringClass().isInterface()) {