aboutsummaryrefslogtreecommitdiff
path: root/libjava/classpath/native/jni/gtk-peer/gtkpeer.c
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/classpath/native/jni/gtk-peer/gtkpeer.c')
-rw-r--r--libjava/classpath/native/jni/gtk-peer/gtkpeer.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/libjava/classpath/native/jni/gtk-peer/gtkpeer.c b/libjava/classpath/native/jni/gtk-peer/gtkpeer.c
index c99fc48..b57626e 100644
--- a/libjava/classpath/native/jni/gtk-peer/gtkpeer.c
+++ b/libjava/classpath/native/jni/gtk-peer/gtkpeer.c
@@ -102,11 +102,13 @@ void gtkpeer_init_pointer_IDs(JNIEnv* env)
#else
#if SIZEOF_VOID_P == 4
pointerClass = (*env)->FindClass(env, "gnu/classpath/Pointer32");
- pointerDataFID = (*env)->GetFieldID(env, pointerClass, "data", "I");
-
- /* Find the Pointer32 constructor. */
- pointerConstructorMID = (*env)->GetMethodID(env, pointerClass, "<init>",
- "(I)V");
+ if (pointerClass != NULL)
+ {
+ pointerClass = (*env)->NewGlobalRef (env, pointerClass);
+ pointerDataFID = (*env)->GetFieldID (env, pointerClass, "data", "I");
+ pointerConstructorMID = (*env)->GetMethodID (env, pointerClass, "<init>",
+ "(I)V");
+ }
#else
#error "Pointer size is not supported."
#endif /* SIZEOF_VOID_P == 4 */