Commit 5dc489c1 by Tom Tromey Committed by Tom Tromey

jni.cc (_Jv_JNI_GetField): Specialize for jobject.

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

From-SVN: r31735
parent ef2362a4
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> 2000-01-31 Tom Tromey <tromey@cygnus.com>
* prims.cc (_Jv_MallocUnchecked): New function. * prims.cc (_Jv_MallocUnchecked): New function.
......
...@@ -811,7 +811,6 @@ _Jv_JNI_NewObjectA (JNIEnv *env, jclass klass, jmethodID id, ...@@ -811,7 +811,6 @@ _Jv_JNI_NewObjectA (JNIEnv *env, jclass klass, jmethodID id,
// FIXME: local reference
template<typename T> template<typename T>
static T static T
_Jv_JNI_GetField (JNIEnv *, jobject obj, jfieldID field) _Jv_JNI_GetField (JNIEnv *, jobject obj, jfieldID field)
...@@ -820,6 +819,14 @@ _Jv_JNI_GetField (JNIEnv *, jobject obj, jfieldID field) ...@@ -820,6 +819,14 @@ _Jv_JNI_GetField (JNIEnv *, jobject obj, jfieldID field)
return *ptr; 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> template<typename T>
static void static void
_Jv_JNI_SetField (JNIEnv *, jobject obj, jfieldID field, T value) _Jv_JNI_SetField (JNIEnv *, jobject obj, jfieldID field, T value)
...@@ -888,6 +895,14 @@ _Jv_JNI_GetStaticField (JNIEnv *, jclass, jfieldID field) ...@@ -888,6 +895,14 @@ _Jv_JNI_GetStaticField (JNIEnv *, jclass, jfieldID field)
return *ptr; 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> template<typename T>
static void static void
_Jv_JNI_SetStaticField (JNIEnv *, jclass, jfieldID field, T value) _Jv_JNI_SetStaticField (JNIEnv *, jclass, jfieldID field, T value)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment