jni.cc (_Jv_JNI_GetField): Specialize for jobject.

* jni.cc (_Jv_JNI_GetField): Specialize for jobject.
	(_Jv_JNI_GetStaticField): Likewise.

From-SVN: r31735
This commit is contained in:
Tom Tromey 2000-02-01 16:32:21 +00:00 committed by Tom Tromey
parent ef2362a417
commit 5dc489c190
2 changed files with 21 additions and 1 deletions

View file

@ -1,3 +1,8 @@
2000-02-01 Tom Tromey <tromey@cygnus.com>
* jni.cc (_Jv_JNI_GetField): Specialize for jobject.
(_Jv_JNI_GetStaticField): Likewise.
2000-01-31 Tom Tromey <tromey@cygnus.com>
* prims.cc (_Jv_MallocUnchecked): New function.

View file

@ -811,7 +811,6 @@ _Jv_JNI_NewObjectA (JNIEnv *env, jclass klass, jmethodID id,
// FIXME: local reference
template<typename T>
static T
_Jv_JNI_GetField (JNIEnv *, jobject obj, jfieldID field)
@ -820,6 +819,14 @@ _Jv_JNI_GetField (JNIEnv *, jobject obj, jfieldID field)
return *ptr;
}
template<>
static jobject
_Jv_JNI_GetField<jobject> (JNIEnv *env, jobject obj, jfieldID field)
{
jobject *ptr = (jobject *) ((char *) obj + field->getOffset ());
return _Jv_JNI_NewLocalRef (env, *ptr);
}
template<typename T>
static void
_Jv_JNI_SetField (JNIEnv *, jobject obj, jfieldID field, T value)
@ -888,6 +895,14 @@ _Jv_JNI_GetStaticField (JNIEnv *, jclass, jfieldID field)
return *ptr;
}
template<>
static jobject
_Jv_JNI_GetStaticField<jobject> (JNIEnv *env, jclass, jfieldID field)
{
jobject *ptr = (jobject *) field->u.addr;
return _Jv_JNI_NewLocalRef (env, *ptr);
}
template<typename T>
static void
_Jv_JNI_SetStaticField (JNIEnv *, jclass, jfieldID field, T value)