// jni.cc - JNI implementation, including the jump table. /* Copyright (C) 1998, 1999 Cygnus Solutions This file is part of libgcj. This software is copyrighted work licensed under the terms of the Libgcj License. Please consult the file "LIBGCJ_LICENSE" for details. */ #include #include #include #include static jclass _Jv_JNI_GetSuperclass (JNIEnv *, jclass clazz) { return clazz->getSuperclass (); } static jboolean IsAssignableFrom(JNIEnv *, jclass clazz1, jclass clazz2) { return clazz1->isAssignableFrom (clazz2); } static jobject _Jv_JNI_GetObjectField (JNIEnv *, jobject obj, jfieldID field) { return _Jv_GetObjectField (obj, field); } static jbyte _Jv_JNI_GetByteField (JNIEnv *, jobject obj, jfieldID field) { return _Jv_GetByteField (obj, field); } static jshort _Jv_JNI_GetShortField (JNIEnv *, jobject obj, jfieldID field) { return _Jv_GetShortField (obj, field); } static jint _Jv_JNI_GetIntField (JNIEnv *, jobject obj, jfieldID field) { return _Jv_GetIntField (obj, field); } static jlong _Jv_JNI_GetLongField (JNIEnv *, jobject obj, jfieldID field) { return _Jv_GetLongField (obj, field); } static jsize _Jv_JNI_GetStringLength (JNIEnv *, jstring string) { return string->length(); } // JDK 1.2 jobject _Jv_JNI_ToReflectedField (JNIEnv *, jclass cls, jfieldID fieldID) { java::lang::reflect::Field *field = new java::lang::reflect::Field(); field->declaringClass = cls; field->offset = (char*) fieldID - (char *) cls->fields; field->name = _Jv_NewStringUtf8Const (fieldID->getNameUtf8Const (cls)); return field; } // JDK 1.2 jfieldID _Jv_JNI_FromReflectedField (JNIEnv *, java::lang::reflect::Field *field) { return _Jv_FromReflectedField (field); } #define NOT_IMPL NULL struct JNINativeInterface _Jv_JNIFunctions = { NULL, NULL, NULL, NULL, NOT_IMPL /* GetVersion */, NOT_IMPL /* DefineClass */, NOT_IMPL /* FindClass */, NULL, NULL, NULL, _Jv_JNI_GetSuperclass, IsAssignableFrom, NULL, NOT_IMPL /* Throw */, NOT_IMPL /* ThrowNew */, NOT_IMPL /* ExceptionOccurred */, NOT_IMPL /* ExceptionDescribe */, NOT_IMPL /* ExceptionClear */, NOT_IMPL /* FatalError */, NOT_IMPL /* NULL */, NOT_IMPL /* NULL */, NOT_IMPL /* NewGlobalRef */, NOT_IMPL /* DeleteGlobalRef */, NOT_IMPL /* DeleteLocalRef */, NOT_IMPL /* IsSameObject */, NOT_IMPL /* NULL */, NOT_IMPL /* NULL */, NOT_IMPL /* AllocObject */, NOT_IMPL /* NewObject */, NOT_IMPL /* NewObjectV */, NOT_IMPL /* NewObjectA */, NOT_IMPL /* GetObjectClass */, NOT_IMPL /* IsInstanceOf */, NOT_IMPL /* GetMethodID */, NOT_IMPL /* CallObjectMethod */, NOT_IMPL /* CallObjectMethodV */, NOT_IMPL /* CallObjectMethodA */, NOT_IMPL /* CallBooleanMethod */, NOT_IMPL /* CallBooleanMethodV */, NOT_IMPL /* CallBooleanMethodA */, NOT_IMPL /* CallByteMethod */, NOT_IMPL /* CallByteMethodV */, NOT_IMPL /* CallByteMethodA */, NOT_IMPL /* CallCharMethod */, NOT_IMPL /* CallCharMethodV */, NOT_IMPL /* CallCharMethodA */, NOT_IMPL /* CallShortMethod */, NOT_IMPL /* CallShortMethodV */, NOT_IMPL /* CallShortMethodA */, NOT_IMPL /* CallIntMethod */, NOT_IMPL /* CallIntMethodV */, NOT_IMPL /* CallIntMethodA */, NOT_IMPL /* CallLongMethod */, NOT_IMPL /* CallLongMethodV */, NOT_IMPL /* CallLongMethodA */, NOT_IMPL /* CallFloatMethod */, NOT_IMPL /* CallFloatMethodV */, NOT_IMPL /* CallFloatMethodA */, NOT_IMPL /* CallDoubleMethod */, NOT_IMPL /* CallDoubleMethodV */, NOT_IMPL /* CallDoubleMethodA */, NOT_IMPL /* CallVoidMethod */, NOT_IMPL /* CallVoidMethodV */, NOT_IMPL /* CallVoidMethodA */, NOT_IMPL /* CallNonvirtualObjectMethod */, NOT_IMPL /* CallNonvirtualObjectMethodV */, NOT_IMPL /* CallNonvirtualObjectMethodA */, NOT_IMPL /* CallNonvirtualBooleanMethod */, NOT_IMPL /* CallNonvirtualBooleanMethodV */, NOT_IMPL /* CallNonvirtualBooleanMethodA */, NOT_IMPL /* CallNonvirtualByteMethod */, NOT_IMPL /* CallNonvirtualByteMethodV */, NOT_IMPL /* CallNonvirtualByteMethodA */, NOT_IMPL /* CallNonvirtualCharMethod */, NOT_IMPL /* CallNonvirtualCharMethodV */, NOT_IMPL /* CallNonvirtualCharMethodA */, NOT_IMPL /* CallNonvirtualShortMethod */, NOT_IMPL /* CallNonvirtualShortMethodV */, NOT_IMPL /* CallNonvirtualShortMethodA */, NOT_IMPL /* CallNonvirtualIntMethod */, NOT_IMPL /* CallNonvirtualIntMethodV */, NOT_IMPL /* CallNonvirtualIntMethodA */, NOT_IMPL /* CallNonvirtualLongMethod */, NOT_IMPL /* CallNonvirtualLongMethodV */, NOT_IMPL /* CallNonvirtualLongMethodA */, NOT_IMPL /* CallNonvirtualFloatMethod */, NOT_IMPL /* CallNonvirtualFloatMethodV */, NOT_IMPL /* CallNonvirtualFloatMethodA */, NOT_IMPL /* CallNonvirtualDoubleMethod */, NOT_IMPL /* CallNonvirtualDoubleMethodV */, NOT_IMPL /* CallNonvirtualDoubleMethodA */, NOT_IMPL /* CallNonvirtualVoidMethod */, NOT_IMPL /* CallNonvirtualVoidMethodV */, NOT_IMPL /* CallNonvirtualVoidMethodA */, NOT_IMPL /* GetFieldID */, _Jv_JNI_GetObjectField, NOT_IMPL /* GetBooleanField */, _Jv_JNI_GetByteField, NOT_IMPL /* GetCharField */, _Jv_JNI_GetShortField, _Jv_JNI_GetIntField, _Jv_JNI_GetLongField, NOT_IMPL /* GetFloatField */, NOT_IMPL /* GetDoubleField */, NOT_IMPL /* SetObjectField */, NOT_IMPL /* SetBooleanField */, NOT_IMPL /* SetByteField */, NOT_IMPL /* SetCharField */, NOT_IMPL /* SetShortField */, NOT_IMPL /* SetIntField */, NOT_IMPL /* SetLongField */, NOT_IMPL /* SetFloatField */, NOT_IMPL /* SetDoubleField */, NOT_IMPL /* GetStaticMethodID */, NOT_IMPL /* CallStaticObjectMethod */, NOT_IMPL /* CallStaticObjectMethodV */, NOT_IMPL /* CallStaticObjectMethodA */, NOT_IMPL /* CallStaticBooleanMethod */, NOT_IMPL /* CallStaticBooleanMethodV */, NOT_IMPL /* CallStaticBooleanMethodA */, NOT_IMPL /* CallStaticByteMethod */, NOT_IMPL /* CallStaticByteMethodV */, NOT_IMPL /* CallStaticByteMethodA */, NOT_IMPL /* CallStaticCharMethod */, NOT_IMPL /* CallStaticCharMethodV */, NOT_IMPL /* CallStaticCharMethodA */, NOT_IMPL /* CallStaticShortMethod */, NOT_IMPL /* CallStaticShortMethodV */, NOT_IMPL /* CallStaticShortMethodA */, NOT_IMPL /* CallStaticIntMethod */, NOT_IMPL /* CallStaticIntMethodV */, NOT_IMPL /* CallStaticIntMethodA */, NOT_IMPL /* CallStaticLongMethod */, NOT_IMPL /* CallStaticLongMethodV */, NOT_IMPL /* CallStaticLongMethodA */, NOT_IMPL /* CallStaticFloatMethod */, NOT_IMPL /* CallStaticFloatMethodV */, NOT_IMPL /* CallStaticFloatMethodA */, NOT_IMPL /* CallStaticDoubleMethod */, NOT_IMPL /* CallStaticDoubleMethodV */, NOT_IMPL /* CallStaticDoubleMethodA */, NOT_IMPL /* CallStaticVoidMethod */, NOT_IMPL /* CallStaticVoidMethodV */, NOT_IMPL /* CallStaticVoidMethodA */, NOT_IMPL /* GetStaticFieldID */, NOT_IMPL /* GetStaticObjectField */, NOT_IMPL /* GetStaticBooleanField */, NOT_IMPL /* GetStaticByteField */, NOT_IMPL /* GetStaticCharField */, NOT_IMPL /* GetStaticShortField */, NOT_IMPL /* GetStaticIntField */, NOT_IMPL /* GetStaticLongField */, NOT_IMPL /* GetStaticFloatField */, NOT_IMPL /* GetStaticDoubleField */, NOT_IMPL /* SetStaticObjectField */, NOT_IMPL /* SetStaticBooleanField */, NOT_IMPL /* SetStaticByteField */, NOT_IMPL /* SetStaticCharField */, NOT_IMPL /* SetStaticShortField */, NOT_IMPL /* SetStaticIntField */, NOT_IMPL /* SetStaticLongField */, NOT_IMPL /* SetStaticFloatField */, NOT_IMPL /* SetStaticDoubleField */, NOT_IMPL /* NewString */, _Jv_JNI_GetStringLength, NOT_IMPL /* GetStringChars */, NOT_IMPL /* ReleaseStringChars */, NOT_IMPL /* NewStringUTF */, NOT_IMPL /* GetStringUTFLength */, NOT_IMPL /* GetStringUTFChars */, NOT_IMPL /* ReleaseStringUTFChars */, NOT_IMPL /* GetArrayLength */, NOT_IMPL /* NewObjectArray */, NOT_IMPL /* GetObjectArrayElement */, NOT_IMPL /* SetObjectArrayElement */, NOT_IMPL /* NewBooleanArray */, NOT_IMPL /* NewByteArray */, NOT_IMPL /* NewCharArray */, NOT_IMPL /* NewShortArray */, NOT_IMPL /* NewIntArray */, NOT_IMPL /* NewLongArray */, NOT_IMPL /* NewFloatArray */, NOT_IMPL /* NewDoubleArray */, NOT_IMPL /* GetBooleanArrayElements */, NOT_IMPL /* GetByteArrayElements */, NOT_IMPL /* GetCharArrayElements */, NOT_IMPL /* GetShortArrayElements */, NOT_IMPL /* GetIntArrayElements */, NOT_IMPL /* GetLongArrayElements */, NOT_IMPL /* GetFloatArrayElements */, NOT_IMPL /* GetDoubleArrayElements */, NOT_IMPL /* ReleaseBooleanArrayElements */, NOT_IMPL /* ReleaseByteArrayElements */, NOT_IMPL /* ReleaseCharArrayElements */, NOT_IMPL /* ReleaseShortArrayElements */, NOT_IMPL /* ReleaseIntArrayElements */, NOT_IMPL /* ReleaseLongArrayElements */, NOT_IMPL /* ReleaseFloatArrayElements */, NOT_IMPL /* ReleaseDoubleArrayElements */, NOT_IMPL /* GetBooleanArrayRegion */, NOT_IMPL /* GetByteArrayRegion */, NOT_IMPL /* GetCharArrayRegion */, NOT_IMPL /* GetShortArrayRegion */, NOT_IMPL /* GetIntArrayRegion */, NOT_IMPL /* GetLongArrayRegion */, NOT_IMPL /* GetFloatArrayRegion */, NOT_IMPL /* GetDoubleArrayRegion */, NOT_IMPL /* SetBooleanArrayRegion */, NOT_IMPL /* SetByteArrayRegion */, NOT_IMPL /* SetCharArrayRegion */, NOT_IMPL /* SetShortArrayRegion */, NOT_IMPL /* SetIntArrayRegion */, NOT_IMPL /* SetLongArrayRegion */, NOT_IMPL /* SetFloatArrayRegion */, NOT_IMPL /* SetDoubleArrayRegion */, NOT_IMPL /* RegisterNatives */, NOT_IMPL /* UnregisterNatives */, NOT_IMPL /* MonitorEnter */, NOT_IMPL /* MonitorExit */, NOT_IMPL /* GetJavaVM */, };