DynamicMethod createMethod(RubyModule module, Function function, Type returnType, Type[] parameterTypes, CallingConvention convention, IRubyObject enums, boolean ignoreError) { FunctionInvoker functionInvoker = getFunctionInvoker(returnType); ParameterMarshaller[] marshallers = new ParameterMarshaller[parameterTypes.length]; for (int i = 0; i < parameterTypes.length; ++i) { marshallers[i] = getMarshaller(parameterTypes[i], convention, enums); if (marshallers[i] == null) { throw module.getRuntime().newTypeError("Could not create marshaller for " + parameterTypes[i]); } } Signature signature = new Signature(returnType, parameterTypes, convention, ignoreError, enums instanceof RubyHash ? (RubyHash) enums : null); BufferNativeInvoker fallbackInvoker = new BufferNativeInvoker(module, function, signature, functionInvoker, marshallers); return parameterTypes.length <= 6 ? new DefaultMethod(module, function, signature, fallbackInvoker) : fallbackInvoker; }
DynamicMethod createMethod(RubyModule module, Function function, Type returnType, Type[] parameterTypes, CallingConvention convention, IRubyObject enums, boolean ignoreError) { FunctionInvoker functionInvoker = getFunctionInvoker(returnType); ParameterMarshaller[] marshallers = new ParameterMarshaller[parameterTypes.length]; for (int i = 0; i < parameterTypes.length; ++i) { marshallers[i] = getMarshaller(parameterTypes[i], convention, enums); if (marshallers[i] == null) { throw module.getRuntime().newTypeError("Could not create marshaller for " + parameterTypes[i]); } } Signature signature = new Signature(returnType, parameterTypes, convention, ignoreError, enums instanceof RubyHash ? (RubyHash) enums : null); BufferNativeInvoker fallbackInvoker = new BufferNativeInvoker(module, function, signature, functionInvoker, marshallers); return parameterTypes.length <= 6 ? new DefaultMethod(module, function, signature, fallbackInvoker) : fallbackInvoker; }
DynamicMethod createMethod(RubyModule module, Function function, Type returnType, Type[] parameterTypes, CallingConvention convention, IRubyObject enums, boolean ignoreError) { FunctionInvoker functionInvoker = getFunctionInvoker(returnType); ParameterMarshaller[] marshallers = new ParameterMarshaller[parameterTypes.length]; for (int i = 0; i < parameterTypes.length; ++i) { marshallers[i] = getMarshaller(parameterTypes[i], convention, enums); if (marshallers[i] == null) { throw module.getRuntime().newTypeError("Could not create marshaller for " + parameterTypes[i]); } } Signature signature = new Signature(returnType, parameterTypes, convention, ignoreError, enums instanceof RubyHash ? (RubyHash) enums : null); BufferNativeInvoker fallbackInvoker = new BufferNativeInvoker(module, function, signature, functionInvoker, marshallers); return parameterTypes.length <= 6 ? new DefaultMethod(module, function, signature, fallbackInvoker) : fallbackInvoker; }
DynamicMethod createMethod(RubyModule module, Function function, Type returnType, Type[] parameterTypes, CallingConvention convention, IRubyObject enums, boolean ignoreError) { FunctionInvoker functionInvoker = getFunctionInvoker(returnType); ParameterMarshaller[] marshallers = new ParameterMarshaller[parameterTypes.length]; for (int i = 0; i < parameterTypes.length; ++i) { marshallers[i] = getMarshaller(parameterTypes[i], convention, enums); if (marshallers[i] == null) { throw module.getRuntime().newTypeError("Could not create marshaller for " + parameterTypes[i]); } } Signature signature = new Signature(returnType, parameterTypes, convention, ignoreError, enums instanceof RubyHash ? (RubyHash) enums : null); BufferNativeInvoker fallbackInvoker = new BufferNativeInvoker(module, function, signature, functionInvoker, marshallers); return parameterTypes.length <= 6 ? new DefaultMethod(module, function, signature, fallbackInvoker) : fallbackInvoker; }