< prev index next >

src/java.desktop/unix/native/libawt_xawt/awt/awt_InputMethod.c

Print this page

        

@@ -1275,13 +1275,18 @@
 
 static void DestroyXIMCallback(XIM im, XPointer client_data, XPointer call_data) {
     /* mark that XIM server was destroyed */
     X11im = NULL;
     JNIEnv* env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2);
+
+    AWT_LOCK();
     /* free the old pX11IMData and set it to null. this also avoids crashing
      * the jvm if the XIM server reappears */
-    X11InputMethodData *pX11IMData = getX11InputMethodData(env, currentX11InputMethodInstance);
+    while (x11InputMethodGRefListHead != NULL) { 
+        getX11InputMethodData(env, x11InputMethodGRefListHead->inputMethodGRef);
+    }
+    AWT_UNLOCK();
 }
 
 JNIEXPORT jboolean JNICALL
 Java_sun_awt_X11_XInputMethod_openXIMNative(JNIEnv *env,
                                             jobject this,
< prev index next >