mirror of
https://github.com/corda/corda.git
synced 2025-01-22 12:28:11 +00:00
Merge remote-tracking branch 'readytalk/master' into jni
This commit is contained in:
commit
6e7a584060
@ -439,17 +439,20 @@ class MyClasspath : public Classpath {
|
||||
unsigned libraryPathOffset = sb.offset;
|
||||
sb.append(javaHome);
|
||||
#ifdef PLATFORM_WINDOWS
|
||||
sb.append("/bin");
|
||||
# define LIB_DIR "/bin"
|
||||
#elif defined __APPLE__
|
||||
sb.append("/lib");
|
||||
# define LIB_DIR "/lib"
|
||||
#elif defined ARCH_x86_64
|
||||
sb.append("/lib/amd64");
|
||||
# define LIB_DIR "/lib/amd64"
|
||||
#elif defined ARCH_arm
|
||||
sb.append("/lib/arm");
|
||||
# define LIB_DIR "/lib/arm"
|
||||
#else
|
||||
// todo: handle other architectures
|
||||
sb.append("/lib/i386");
|
||||
# define LIB_DIR "/lib/i386"
|
||||
#endif
|
||||
sb.append(LIB_DIR ":");
|
||||
sb.append(javaHome);
|
||||
sb.append(LIB_DIR "/xawt");
|
||||
sb.append('\0');
|
||||
|
||||
unsigned tzMappingsOffset = sb.offset;
|
||||
@ -635,6 +638,7 @@ class MyClasspath : public Classpath {
|
||||
#else // not AVIAN_OPENJDK_SRC
|
||||
expect(t, loadLibrary(t, libraryPath, "verify", true, true));
|
||||
expect(t, loadLibrary(t, libraryPath, "java", true, true));
|
||||
loadLibrary(t, libraryPath, "mawt", true, true);
|
||||
#endif // not AVIAN_OPENJDK_SRC
|
||||
|
||||
{ object assertionLock = resolveField
|
||||
|
@ -396,6 +396,14 @@ Throw(Thread* t, jthrowable throwable)
|
||||
return 0;
|
||||
}
|
||||
|
||||
jobject JNICALL
|
||||
NewLocalRef(Thread* t, jobject o)
|
||||
{
|
||||
ENTER(t, Thread::ActiveState);
|
||||
|
||||
return makeLocalReference(t, *o);
|
||||
}
|
||||
|
||||
void JNICALL
|
||||
DeleteLocalRef(Thread* t, jobject r)
|
||||
{
|
||||
@ -3513,6 +3521,7 @@ populateJNITables(JavaVMVTable* vmTable, JNIEnvVTable* envTable)
|
||||
envTable->NewDirectByteBuffer = local::NewDirectByteBuffer;
|
||||
envTable->GetDirectBufferAddress = local::GetDirectBufferAddress;
|
||||
envTable->GetDirectBufferCapacity = local::GetDirectBufferCapacity;
|
||||
envTable->NewLocalRef = local::NewLocalRef;
|
||||
envTable->DeleteLocalRef = local::DeleteLocalRef;
|
||||
envTable->GetObjectClass = local::GetObjectClass;
|
||||
envTable->GetSuperclass = local::GetSuperclass;
|
||||
|
@ -57,6 +57,8 @@ public class JNI {
|
||||
|
||||
private static native int getStaticIntField(Class c, long id);
|
||||
|
||||
private static native Object testLocalRef(Object o);
|
||||
|
||||
public static int method242() { return 242; }
|
||||
|
||||
public static final int field950 = 950;
|
||||
@ -106,5 +108,9 @@ public class JNI {
|
||||
(JNI.class, fromReflectedField
|
||||
(JNI.class.getField("field950")), true)
|
||||
.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));
|
||||
}
|
||||
|
||||
extern "C" JNIEXPORT jobject JNICALL
|
||||
Java_JNI_testLocalRef(JNIEnv* e, jclass, jobject o)
|
||||
{
|
||||
return e->NewLocalRef(o);
|
||||
}
|
||||
|
||||
extern "C" JNIEXPORT jobject JNICALL
|
||||
Java_Buffers_allocateNative(JNIEnv* e, jclass, jint capacity)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user