aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/java/JavaHandle.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/java/JavaHandle.cpp')
-rw-r--r--src/java/JavaHandle.cpp14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/java/JavaHandle.cpp b/src/java/JavaHandle.cpp
index 1bf799e3..fdefc49a 100644
--- a/src/java/JavaHandle.cpp
+++ b/src/java/JavaHandle.cpp
@@ -2,15 +2,15 @@
using namespace mailcore;
-static jfieldID getField(JNIEnv * env, jobject obj, const char * fieldName)
+static jfieldID getField(JNIEnv * env, jobject obj, const char * fieldName, const char * fieldClass)
{
jclass c = env->GetObjectClass(obj);
- return env->GetFieldID(c, fieldName, "J");
+ return env->GetFieldID(c, fieldName, fieldClass);
}
static jfieldID getHandleField(JNIEnv * env, jobject obj)
{
- return getField(env, obj, "nativeHandle");
+ return getField(env, obj, "nativeHandle", "J");
}
void * mailcore::getHandle(JNIEnv * env, jobject obj)
@@ -27,17 +27,17 @@ void mailcore::setHandle(JNIEnv *env, jobject obj, void *t)
void * mailcore::getCustomHandle(JNIEnv * env, jobject obj, const char * fieldName)
{
- jlong handle = env->GetLongField(obj, getField(env, obj, fieldName));
+ jlong handle = env->GetLongField(obj, getField(env, obj, fieldName, "J"));
return (void *) handle;
}
void mailcore::setCustomHandle(JNIEnv *env, jobject obj, const char * fieldName, void *t)
{
jlong handle = reinterpret_cast<jlong>(t);
- env->SetLongField(obj, getField(env, obj, fieldName), handle);
+ env->SetLongField(obj, getField(env, obj, fieldName, "J"), handle);
}
-jobject mailcore::getObjectField(JNIEnv *env, jobject obj, const char * fieldName)
+jobject mailcore::getObjectField(JNIEnv *env, jobject obj, const char * fieldName, const char * fieldClass)
{
- return env->GetObjectField(obj, getField(env, obj, fieldName));
+ return env->GetObjectField(obj, getField(env, obj, fieldName, fieldClass));
} \ No newline at end of file