summaryrefslogtreecommitdiff
path: root/libjava/java/lang/natRuntime.cc
diff options
context:
space:
mode:
authortromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2000-02-18 21:22:06 +0000
committertromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2000-02-18 21:22:06 +0000
commit74ee27eff3f29f07896a7f55b64ad2922dda7018 (patch)
tree6637b7627b283f1bc28869d88ab6c8eecc6e22fc /libjava/java/lang/natRuntime.cc
parent3f0cd642176ce3047f43055f65e616e763f45092 (diff)
downloadgcc-74ee27eff3f29f07896a7f55b64ad2922dda7018.tar.gz
* include/jvm.h (_Jv_GetJavaVM): Declare.
* include/java-interp.h (_Jv_GetFirstMethod): New function. (_Jv_MethodBase::get_method): New method. (_Jv_JNIMethod::set_function): New method. * jni.cc (_Jv_JNI_UnregisterNatives): New function. (_Jv_JNI_RegisterNatives): New function. (_Jv_JNIFunctions): Updated for new functions. (_Jv_GetJavaVM): New function. (_Jv_JNI_GetJavaVM): Use it. Now static. (_Jv_JNI_AttachCurrentThread): Create a new JNIEnv if this thread is already a Java thread but does not have a JNIEnv yet. * java/lang/natRuntime.cc (_load): Pass the JavaVM to the onload function. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@32056 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/java/lang/natRuntime.cc')
-rw-r--r--libjava/java/lang/natRuntime.cc9
1 files changed, 7 insertions, 2 deletions
diff --git a/libjava/java/lang/natRuntime.cc b/libjava/java/lang/natRuntime.cc
index b9b9c57365a..eb1d477002a 100644
--- a/libjava/java/lang/natRuntime.cc
+++ b/libjava/java/lang/natRuntime.cc
@@ -135,8 +135,13 @@ java::lang::Runtime::_load (jstring path, jboolean do_search)
void *onload = lt_dlsym (h, "JNI_OnLoad");
if (onload != NULL)
{
- // FIXME: need invocation API to get JavaVM.
- jint vers = ((jint (*) (...)) onload) (NULL, NULL);
+ JavaVM *vm = _Jv_GetJavaVM ();
+ if (vm == NULL)
+ {
+ // FIXME: what?
+ return;
+ }
+ jint vers = ((jint (*) (JavaVM *, void *)) onload) (vm, NULL);
if (vers != JNI_VERSION_1_1 && vers != JNI_VERSION_1_2)
{
// FIXME: unload the library.