From 31073919c6a90f203500104ecad4a74d9c1fb150 Mon Sep 17 00:00:00 2001 From: Adam Welc <adam.welc@oracle.com> Date: Fri, 30 Dec 2016 14:30:14 -0800 Subject: [PATCH] Fixes to the native interface. --- com.oracle.truffle.r.native/fficall/src/jni/Rembedded.c | 6 +++--- com.oracle.truffle.r.native/fficall/src/jni/rffiutils.c | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/com.oracle.truffle.r.native/fficall/src/jni/Rembedded.c b/com.oracle.truffle.r.native/fficall/src/jni/Rembedded.c index 11bfb92d75..22ad74dcdf 100644 --- a/com.oracle.truffle.r.native/fficall/src/jni/Rembedded.c +++ b/com.oracle.truffle.r.native/fficall/src/jni/Rembedded.c @@ -645,17 +645,17 @@ SEXP R_getContextSrcRef(CTXT context) { int R_insideBrowser() { JNIEnv *jniEnv = getEnv(); jmethodID methodID = checkGetMethodID(jniEnv, UpCallsRFFIClass, "R_insideBrowser", "()I", 0); - return (*jniEnv)->CallStaticIntMethod(jniEnv, UpCallsRFFIClass, methodID); + return (*jniEnv)->CallIntMethod(jniEnv, UpCallsRFFIObject, methodID); } int R_isGlobal(CTXT context) { JNIEnv *jniEnv = getEnv(); jmethodID methodID = checkGetMethodID(jniEnv, UpCallsRFFIClass, "R_isGlobal", "(Ljava/lang/Object;)I", 0); - return (*jniEnv)->CallStaticIntMethod(jniEnv, UpCallsRFFIClass, methodID, context); + return (*jniEnv)->CallIntMethod(jniEnv, UpCallsRFFIObject, methodID, context); } int R_isEqual(void* x, void* y) { JNIEnv *jniEnv = getEnv(); jmethodID methodID = checkGetMethodID(jniEnv, UpCallsRFFIClass, "R_isEqual", "(Ljava/lang/Object;Ljava/lang/Object;)I", 0); - return (*jniEnv)->CallStaticIntMethod(jniEnv, UpCallsRFFIClass, methodID, x, y); + return (*jniEnv)->CallIntMethod(jniEnv, UpCallsRFFIObject, methodID, x, y); } diff --git a/com.oracle.truffle.r.native/fficall/src/jni/rffiutils.c b/com.oracle.truffle.r.native/fficall/src/jni/rffiutils.c index 69d19f2aec..2ab54e4fda 100644 --- a/com.oracle.truffle.r.native/fficall/src/jni/rffiutils.c +++ b/com.oracle.truffle.r.native/fficall/src/jni/rffiutils.c @@ -88,7 +88,7 @@ static jmp_buf* callErrorJmpBufTable[CALLDEPTH_STACK_SIZE]; void init_utils(JNIEnv *env, jobject upCallsInstance) { curenv = env; - UpCallsRFFIClass = (*env)->GetObjectClass(env, upCallsInstance); + UpCallsRFFIClass = (*env)->NewGlobalRef(env, (*env)->GetObjectClass(env, upCallsInstance)); UpCallsRFFIObject = (*env)->NewGlobalRef(env, upCallsInstance); if (TRACE_ENABLED && traceFile == NULL) { if (!isEmbedded) { -- GitLab