mirror of
https://github.com/corda/corda.git
synced 2025-01-04 04:04:27 +00:00
implement JNIEnv::NewLocalRef
This commit is contained in:
parent
1094483a7c
commit
b75497c8ff
@ -396,6 +396,14 @@ Throw(Thread* t, jthrowable throwable)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
jobject JNICALL
|
||||||
|
NewLocalRef(Thread* t, jobject o)
|
||||||
|
{
|
||||||
|
ENTER(t, Thread::ActiveState);
|
||||||
|
|
||||||
|
return makeLocalReference(t, *o);
|
||||||
|
}
|
||||||
|
|
||||||
void JNICALL
|
void JNICALL
|
||||||
DeleteLocalRef(Thread* t, jobject r)
|
DeleteLocalRef(Thread* t, jobject r)
|
||||||
{
|
{
|
||||||
@ -3513,6 +3521,7 @@ populateJNITables(JavaVMVTable* vmTable, JNIEnvVTable* envTable)
|
|||||||
envTable->NewDirectByteBuffer = local::NewDirectByteBuffer;
|
envTable->NewDirectByteBuffer = local::NewDirectByteBuffer;
|
||||||
envTable->GetDirectBufferAddress = local::GetDirectBufferAddress;
|
envTable->GetDirectBufferAddress = local::GetDirectBufferAddress;
|
||||||
envTable->GetDirectBufferCapacity = local::GetDirectBufferCapacity;
|
envTable->GetDirectBufferCapacity = local::GetDirectBufferCapacity;
|
||||||
|
envTable->NewLocalRef = local::NewLocalRef;
|
||||||
envTable->DeleteLocalRef = local::DeleteLocalRef;
|
envTable->DeleteLocalRef = local::DeleteLocalRef;
|
||||||
envTable->GetObjectClass = local::GetObjectClass;
|
envTable->GetObjectClass = local::GetObjectClass;
|
||||||
envTable->GetSuperclass = local::GetSuperclass;
|
envTable->GetSuperclass = local::GetSuperclass;
|
||||||
|
@ -57,6 +57,8 @@ public class JNI {
|
|||||||
|
|
||||||
private static native int getStaticIntField(Class c, long id);
|
private static native int getStaticIntField(Class c, long id);
|
||||||
|
|
||||||
|
private static native Object testLocalRef(Object o);
|
||||||
|
|
||||||
public static int method242() { return 242; }
|
public static int method242() { return 242; }
|
||||||
|
|
||||||
public static final int field950 = 950;
|
public static final int field950 = 950;
|
||||||
@ -106,5 +108,9 @@ public class JNI {
|
|||||||
(JNI.class, fromReflectedField
|
(JNI.class, fromReflectedField
|
||||||
(JNI.class.getField("field950")), true)
|
(JNI.class.getField("field950")), true)
|
||||||
.getName().equals("field950"));
|
.getName().equals("field950"));
|
||||||
|
|
||||||
|
{ Object o = new Object();
|
||||||
|
expect(testLocalRef(o) == o);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -101,6 +101,12 @@ Java_JNI_getStaticIntField(JNIEnv* e, jclass, jclass c, jlong id)
|
|||||||
return e->GetStaticIntField(c, reinterpret_cast<jfieldID>(id));
|
return e->GetStaticIntField(c, reinterpret_cast<jfieldID>(id));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extern "C" JNIEXPORT jobject JNICALL
|
||||||
|
Java_JNI_testLocalRef(JNIEnv* e, jclass, jobject o)
|
||||||
|
{
|
||||||
|
return e->NewLocalRef(o);
|
||||||
|
}
|
||||||
|
|
||||||
extern "C" JNIEXPORT jobject JNICALL
|
extern "C" JNIEXPORT jobject JNICALL
|
||||||
Java_Buffers_allocateNative(JNIEnv* e, jclass, jint capacity)
|
Java_Buffers_allocateNative(JNIEnv* e, jclass, jint capacity)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user