diff options
Diffstat (limited to 'libjava/classpath/native/jni/gtk-peer/gtkpeer.c')
-rw-r--r-- | libjava/classpath/native/jni/gtk-peer/gtkpeer.c | 12 |
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 */ |