From 74ee27eff3f29f07896a7f55b64ad2922dda7018 Mon Sep 17 00:00:00 2001 From: tromey Date: Fri, 18 Feb 2000 21:22:06 +0000 Subject: * 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 --- libjava/include/java-interp.h | 21 +++++++++++++++++++++ libjava/include/jvm.h | 3 +++ 2 files changed, 24 insertions(+) (limited to 'libjava/include') diff --git a/libjava/include/java-interp.h b/libjava/include/java-interp.h index a0ca3470de8..3f33d54bb55 100644 --- a/libjava/include/java-interp.h +++ b/libjava/include/java-interp.h @@ -79,6 +79,12 @@ protected: // Size of raw arguments. _Jv_ushort args_raw_size; + +public: + _Jv_Method *get_method () + { + return self; + } }; class _Jv_InterpMethod : public _Jv_MethodBase @@ -156,8 +162,16 @@ class _Jv_InterpClass : public java::lang::Class friend void _Jv_PrepareClass(jclass); friend void _Jv_InitField (jobject, jclass, int); friend void* _Jv_MarkObj (void *, void *, void *, void *); + + friend _Jv_MethodBase ** _Jv_GetFirstMethod (_Jv_InterpClass *klass); }; +extern inline _Jv_MethodBase ** +_Jv_GetFirstMethod (_Jv_InterpClass *klass) +{ + return klass->interpreted_methods; +} + struct _Jv_ResolvedMethod { jint stack_item_count; jint vtable_index; @@ -190,6 +204,13 @@ class _Jv_JNIMethod : public _Jv_MethodBase friend class _Jv_ClassReader; friend void _Jv_PrepareClass(jclass); + +public: + // FIXME: this is ugly. + void set_function (void *f) + { + function = f; + } }; #endif /* INTERPRETER */ diff --git a/libjava/include/jvm.h b/libjava/include/jvm.h index d21da78923a..40a0c2a9830 100644 --- a/libjava/include/jvm.h +++ b/libjava/include/jvm.h @@ -211,4 +211,7 @@ extern void _Jv_JNI_Init (void); _Jv_JNIEnv *_Jv_GetCurrentJNIEnv (); void _Jv_SetCurrentJNIEnv (_Jv_JNIEnv *); +struct _Jv_JavaVM; +_Jv_JavaVM *_Jv_GetJavaVM (); + #endif /* __JAVA_JVM_H__ */ -- cgit v1.2.3