diff options
author | tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-01-21 23:50:31 +0000 |
---|---|---|
committer | tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-01-21 23:50:31 +0000 |
commit | ac88f99cd915a19abd61299aa47e7aab4cf7fa2e (patch) | |
tree | e63221042f53661dc5ac90918d840d796a598554 /libjava/java/lang/Class.h | |
parent | e3c54aa414f56153766e5351323deab0530702a3 (diff) | |
download | ppe42-gcc-ac88f99cd915a19abd61299aa47e7aab4cf7fa2e.tar.gz ppe42-gcc-ac88f99cd915a19abd61299aa47e7aab4cf7fa2e.zip |
* java/lang/reflect/natConstructor.cc (newInstance): Use
_Jv_CallAnyMethodA.
* include/jvm.h: Declare _Jv_CallAnyMethodA.
* java/lang/reflect/natMethod.cc (_Jv_CallAnyMethodA): Renamed
from _Jv_CallNonvirtualMethodA. Changed interface; overloaded.
Include <jni.h>.
(COPY): Removed.
(invoke): Use _Jv_CallAnyMethodA.
(VAL): Redefined.
* java/lang/Class.h (Class): Declare JvGetFirstStaticField,
JvNumStaticFields, JvNumMethods, and JvGetFirstMethod as friend
functions.
(struct _Jv_Method): Added getNextMethod method.
(JvNumMethods): New function.
(JvGetFirstMethod): Likewise.
* gcj/field.h (JvGetFirstStaticField): New function.
(JvNumStaticFields): Likewise.
(getNextField): Renamed from getNextInstanceField.
(struct _Jv_Field): New method getClass.
* jni.cc: Wrote many new functions.
* include/jni.h (JNI_TRUE): Define.
(JNI_FALSE): Likewise.
(jobject, jclass, jstring, jarray, jthrowable, jobjectArray,
jbyteArray, jshortArray, jintArray, jlongArray, jbooleanArray,
jcharArray, jfloatArray, jdoubleArray): New typedefs.
(jfieldID, jmethodID): Likewise.
(JNI_COMMIT, JNI_ABORT): New defines.
(JNINativeMethod): New struct.
(struct JNINativeInterface): Correctly declared more entries.
(class _Jv_JNIEnv): Added `ex' member.
(JNI_VERSION_1_1): New define.
(JNI_VERSION_1_2): Likewise.
* boehm.cc (_Jv_MarkObj): Use getNextField, not
getNextInstanceField.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@31553 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/java/lang/Class.h')
-rw-r--r-- | libjava/java/lang/Class.h | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/libjava/java/lang/Class.h b/libjava/java/lang/Class.h index 2863adb896f..84834f3120c 100644 --- a/libjava/java/lang/Class.h +++ b/libjava/java/lang/Class.h @@ -60,6 +60,9 @@ struct _Jv_Method _Jv_Utf8Const *signature; unsigned short accflags; void *ncode; + + _Jv_Method *getNextMethod () + { return this + 1; } }; #define JV_PRIMITIVE_VTABLE ((_Jv_VTable *) -1) @@ -168,13 +171,19 @@ private: friend jfieldID JvGetFirstInstanceField (jclass); friend jint JvNumInstanceFields (jclass); + friend jfieldID JvGetFirstStaticField (jclass); + friend jint JvNumStaticFields (jclass); + friend jobject _Jv_AllocObject (jclass, jint); friend jobjectArray _Jv_NewObjectArray (jsize, jclass, jobject); friend jobject _Jv_NewPrimArray (jclass, jint); friend jobject _Jv_JNI_ToReflectedField (_Jv_JNIEnv *, jclass, jfieldID); friend jfieldID _Jv_FromReflectedField (java::lang::reflect::Field *); + friend jmethodID _Jv_FromReflectedMethod (java::lang::reflect::Method *); friend jmethodID _Jv_FromReflectedConstructor (java::lang::reflect::Constructor *); + friend jint JvNumMethods (jclass); + friend jmethodID JvGetFirstMethod (jclass); friend class _Jv_PrimClass; @@ -257,4 +266,17 @@ private: java::lang::Thread *thread; }; + +extern inline jint +JvNumMethods (jclass klass) +{ + return klass->method_count; +} + +extern inline jmethodID +JvGetFirstMethod (jclass klass) +{ + return &klass->methods[0]; +} + #endif /* __JAVA_LANG_CLASS_H__ */ |