From 44f20a3efd38a865724fdfb8ca260f0d478c8803 Mon Sep 17 00:00:00 2001 From: Lukas Stadler <lukas.stadler@oracle.com> Date: Tue, 25 Jul 2017 17:22:40 +0200 Subject: [PATCH] revert invalid changes in NFI zip and base --- .../com/oracle/truffle/r/ffi/impl/nfi/TruffleNFI_Base.java | 5 +++-- .../com/oracle/truffle/r/ffi/impl/nfi/TruffleNFI_PCRE.java | 3 ++- .../com/oracle/truffle/r/ffi/impl/nfi/TruffleNFI_Zip.java | 7 +++++-- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/nfi/TruffleNFI_Base.java b/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/nfi/TruffleNFI_Base.java index 54a5120633..eb2cb9fa87 100644 --- a/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/nfi/TruffleNFI_Base.java +++ b/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/nfi/TruffleNFI_Base.java @@ -26,6 +26,7 @@ import java.io.IOException; import java.util.ArrayList; import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary; +import com.oracle.truffle.api.interop.java.JavaInterop; import com.oracle.truffle.r.ffi.impl.interop.base.GlobResult; import com.oracle.truffle.r.ffi.impl.interop.base.ReadlinkResult; import com.oracle.truffle.r.ffi.impl.interop.base.StrtolResult; @@ -58,7 +59,7 @@ public class TruffleNFI_Base implements BaseRFFI { @Override public String execute() { byte[] buf = new byte[4096]; - int result = (int) call(buf, buf.length); + int result = (int) call(JavaInterop.asTruffleObject(buf), buf.length); if (result == 0) { return null; } else { @@ -141,7 +142,7 @@ public class TruffleNFI_Base implements BaseRFFI { byte[] ztbytes = new byte[bytes.length + 1]; System.arraycopy(bytes, 0, ztbytes, 0, bytes.length); ztbytes[bytes.length] = 0; - int result = (int) call(ztbytes); + int result = (int) call(JavaInterop.asTruffleObject(ztbytes)); if (result == 0) { return null; } else { diff --git a/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/nfi/TruffleNFI_PCRE.java b/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/nfi/TruffleNFI_PCRE.java index fd499407ef..8a8326f9d4 100644 --- a/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/nfi/TruffleNFI_PCRE.java +++ b/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/nfi/TruffleNFI_PCRE.java @@ -25,6 +25,7 @@ package com.oracle.truffle.r.ffi.impl.nfi; import java.nio.charset.StandardCharsets; import com.oracle.truffle.api.CompilerDirectives; +import com.oracle.truffle.api.interop.java.JavaInterop; import com.oracle.truffle.r.ffi.impl.interop.pcre.CaptureNamesResult; import com.oracle.truffle.r.ffi.impl.interop.pcre.CompileResult; import com.oracle.truffle.r.runtime.RError; @@ -99,7 +100,7 @@ public class TruffleNFI_PCRE implements PCRERFFI { @Override public int execute(long code, long extra, String subject, int offset, int options, int[] ovector) { byte[] subjectBytes = subject.getBytes(StandardCharsets.UTF_8); - return (int) call(code, extra, subjectBytes, subjectBytes.length, offset, options, ovector, ovector.length); + return (int) call(code, extra, JavaInterop.asTruffleObject(subjectBytes), subjectBytes.length, offset, options, ovector, ovector.length); } } diff --git a/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/nfi/TruffleNFI_Zip.java b/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/nfi/TruffleNFI_Zip.java index 0063f550b4..fe6ff0492c 100644 --- a/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/nfi/TruffleNFI_Zip.java +++ b/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/nfi/TruffleNFI_Zip.java @@ -22,6 +22,7 @@ */ package com.oracle.truffle.r.ffi.impl.nfi; +import com.oracle.truffle.api.interop.java.JavaInterop; import com.oracle.truffle.r.runtime.ffi.ZipRFFI; public class TruffleNFI_Zip implements ZipRFFI { @@ -35,7 +36,8 @@ public class TruffleNFI_Zip implements ZipRFFI { @Override public int execute(byte[] dest, byte[] source) { long[] destlen = new long[]{dest.length}; - return (int) call(dest, destlen, source, source.length); + int result = (int) call(JavaInterop.asTruffleObject(dest), JavaInterop.asTruffleObject(destlen), JavaInterop.asTruffleObject(source), source.length); + return result; } } @@ -48,7 +50,8 @@ public class TruffleNFI_Zip implements ZipRFFI { @Override public int execute(byte[] dest, byte[] source) { long[] destlen = new long[]{dest.length}; - return (int) call(dest, destlen, source, source.length); + int result = (int) call(JavaInterop.asTruffleObject(dest), JavaInterop.asTruffleObject(destlen), JavaInterop.asTruffleObject(source), source.length); + return result; } } -- GitLab