// jni.cc - JNI implementation, including the jump table. /* Copyright (C) 1998, 1999 Red Hat, Inc. 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 */, };