JITSignature(Signature signature) { this.resultType = signature.getResultType().getNativeType(); this.parameterTypes = new NativeType[signature.getParameterCount()]; for (int i = 0; i < parameterTypes.length; i++) { parameterTypes[i] = signature.getParameterType(i).getNativeType(); } this.convention = signature.getCallingConvention(); this.ignoreError = signature.isIgnoreError(); // FIXME: calculate these properly this.hasResultConverter = false; this.hasParameterConverter = new boolean[parameterTypes.length]; Arrays.fill(hasParameterConverter, false); }
JITSignature(Signature signature) { this.resultType = signature.getResultType().getNativeType(); this.parameterTypes = new NativeType[signature.getParameterCount()]; for (int i = 0; i < parameterTypes.length; i++) { parameterTypes[i] = signature.getParameterType(i).getNativeType(); } this.convention = signature.getCallingConvention(); this.ignoreError = signature.isIgnoreError(); // FIXME: calculate these properly this.hasResultConverter = false; this.hasParameterConverter = new boolean[parameterTypes.length]; Arrays.fill(hasParameterConverter, false); }
JITSignature(Signature signature) { this.resultType = signature.getResultType().getNativeType(); this.parameterTypes = new NativeType[signature.getParameterCount()]; for (int i = 0; i < parameterTypes.length; i++) { parameterTypes[i] = signature.getParameterType(i).getNativeType(); } this.convention = signature.getCallingConvention(); this.ignoreError = signature.isIgnoreError(); // FIXME: calculate these properly this.hasResultConverter = false; this.hasParameterConverter = new boolean[parameterTypes.length]; Arrays.fill(hasParameterConverter, false); }
JITSignature(Signature signature) { this.resultType = signature.getResultType().getNativeType(); this.parameterTypes = new NativeType[signature.getParameterCount()]; for (int i = 0; i < parameterTypes.length; i++) { parameterTypes[i] = signature.getParameterType(i).getNativeType(); } this.convention = signature.getCallingConvention(); this.ignoreError = signature.isIgnoreError(); // FIXME: calculate these properly this.hasResultConverter = false; this.hasParameterConverter = new boolean[parameterTypes.length]; Arrays.fill(hasParameterConverter, false); }
JITHandle getHandle(Signature signature, boolean unique) { boolean hasResultConverter = !(signature.getResultType() instanceof Type.Builtin); NativeType nativeResultType; Type resultType = signature.getResultType();
JITHandle getHandle(Signature signature, boolean unique) { boolean hasResultConverter = !(signature.getResultType() instanceof Type.Builtin); NativeType nativeResultType; Type resultType = signature.getResultType();
JITHandle getHandle(Signature signature, boolean unique) { boolean hasResultConverter = !(signature.getResultType() instanceof Type.Builtin); NativeType nativeResultType; Type resultType = signature.getResultType();
JITHandle getHandle(Signature signature, boolean unique) { boolean hasResultConverter = !(signature.getResultType() instanceof Type.Builtin); NativeType nativeResultType; Type resultType = signature.getResultType();
MethodHandle resultFilter = getResultFilter(method.getImplementationClass().getRuntime(), signature.getResultType().getNativeType(), nativeIntClass); if (resultFilter == null) { return null;
MethodHandle resultFilter = getResultFilter(method.getImplementationClass().getRuntime(), signature.getResultType().getNativeType(), nativeIntClass); if (resultFilter == null) { return null;
public JITNativeInvoker(RubyModule implementationClass, com.kenai.jffi.Function function, Signature signature) { super(implementationClass, function, signature); this.arity = signature.getParameterCount(); this.function = function; this.callContext = function.getCallContext(); this.functionAddress = function.getFunctionAddress(); this.signature = signature; // Get any result and parameter converters needed resultConverter = DataConverters.getResultConverter(signature.getResultType()); parameterConverter0 = getParameterConverter(signature, 0); parameterConverter1 = getParameterConverter(signature, 1); parameterConverter2 = getParameterConverter(signature, 2); parameterConverter3 = getParameterConverter(signature, 3); parameterConverter4 = getParameterConverter(signature, 4); parameterConverter5 = getParameterConverter(signature, 5); parameterInfo0 = getParameterInfo(signature, 0); parameterInfo1 = getParameterInfo(signature, 1); parameterInfo2 = getParameterInfo(signature, 2); parameterInfo3 = getParameterInfo(signature, 3); parameterInfo4 = getParameterInfo(signature, 4); parameterInfo5 = getParameterInfo(signature, 5); parameterCallSite0 = getParameterCallSite(signature, 0); parameterCallSite1 = getParameterCallSite(signature, 1); parameterCallSite2 = getParameterCallSite(signature, 2); parameterCallSite3 = getParameterCallSite(signature, 3); parameterCallSite4 = getParameterCallSite(signature, 4); parameterCallSite5 = getParameterCallSite(signature, 5); parameterCallSite6 = getParameterCallSite(signature, 6); }
public JITNativeInvoker(RubyModule implementationClass, com.kenai.jffi.Function function, Signature signature) { super(implementationClass, function, signature); this.arity = signature.getParameterCount(); this.function = function; this.callContext = function.getCallContext(); this.functionAddress = function.getFunctionAddress(); this.signature = signature; // Get any result and parameter converters needed resultConverter = DataConverters.getResultConverter(signature.getResultType()); parameterConverter0 = getParameterConverter(signature, 0); parameterConverter1 = getParameterConverter(signature, 1); parameterConverter2 = getParameterConverter(signature, 2); parameterConverter3 = getParameterConverter(signature, 3); parameterConverter4 = getParameterConverter(signature, 4); parameterConverter5 = getParameterConverter(signature, 5); parameterInfo0 = getParameterInfo(signature, 0); parameterInfo1 = getParameterInfo(signature, 1); parameterInfo2 = getParameterInfo(signature, 2); parameterInfo3 = getParameterInfo(signature, 3); parameterInfo4 = getParameterInfo(signature, 4); parameterInfo5 = getParameterInfo(signature, 5); parameterCallSite0 = getParameterCallSite(signature, 0); parameterCallSite1 = getParameterCallSite(signature, 1); parameterCallSite2 = getParameterCallSite(signature, 2); parameterCallSite3 = getParameterCallSite(signature, 3); parameterCallSite4 = getParameterCallSite(signature, 4); parameterCallSite5 = getParameterCallSite(signature, 5); parameterCallSite6 = getParameterCallSite(signature, 6); }
public JITNativeInvoker(RubyModule implementationClass, com.kenai.jffi.Function function, Signature signature) { super(implementationClass, function, signature); this.arity = signature.getParameterCount(); this.function = function; this.callContext = function.getCallContext(); this.functionAddress = function.getFunctionAddress(); this.signature = signature; // Get any result and parameter converters needed resultConverter = DataConverters.getResultConverter(signature.getResultType()); parameterConverter0 = getParameterConverter(signature, 0); parameterConverter1 = getParameterConverter(signature, 1); parameterConverter2 = getParameterConverter(signature, 2); parameterConverter3 = getParameterConverter(signature, 3); parameterConverter4 = getParameterConverter(signature, 4); parameterConverter5 = getParameterConverter(signature, 5); parameterInfo0 = getParameterInfo(signature, 0); parameterInfo1 = getParameterInfo(signature, 1); parameterInfo2 = getParameterInfo(signature, 2); parameterInfo3 = getParameterInfo(signature, 3); parameterInfo4 = getParameterInfo(signature, 4); parameterInfo5 = getParameterInfo(signature, 5); parameterCallSite0 = getParameterCallSite(signature, 0); parameterCallSite1 = getParameterCallSite(signature, 1); parameterCallSite2 = getParameterCallSite(signature, 2); parameterCallSite3 = getParameterCallSite(signature, 3); parameterCallSite4 = getParameterCallSite(signature, 4); parameterCallSite5 = getParameterCallSite(signature, 5); parameterCallSite6 = getParameterCallSite(signature, 6); }
public JITNativeInvoker(RubyModule implementationClass, com.kenai.jffi.Function function, Signature signature) { super(implementationClass, function, signature); this.arity = signature.getParameterCount(); this.function = function; this.callContext = function.getCallContext(); this.functionAddress = function.getFunctionAddress(); this.signature = signature; // Get any result and parameter converters needed resultConverter = DataConverters.getResultConverter(signature.getResultType()); parameterConverter0 = getParameterConverter(signature, 0); parameterConverter1 = getParameterConverter(signature, 1); parameterConverter2 = getParameterConverter(signature, 2); parameterConverter3 = getParameterConverter(signature, 3); parameterConverter4 = getParameterConverter(signature, 4); parameterConverter5 = getParameterConverter(signature, 5); parameterInfo0 = getParameterInfo(signature, 0); parameterInfo1 = getParameterInfo(signature, 1); parameterInfo2 = getParameterInfo(signature, 2); parameterInfo3 = getParameterInfo(signature, 3); parameterInfo4 = getParameterInfo(signature, 4); parameterInfo5 = getParameterInfo(signature, 5); parameterCallSite0 = getParameterCallSite(signature, 0); parameterCallSite1 = getParameterCallSite(signature, 1); parameterCallSite2 = getParameterCallSite(signature, 2); parameterCallSite3 = getParameterCallSite(signature, 3); parameterCallSite4 = getParameterCallSite(signature, 4); parameterCallSite5 = getParameterCallSite(signature, 5); parameterCallSite6 = getParameterCallSite(signature, 6); }