[uim-commit] r1028 - in branches/r5rs: . uim

tkng at freedesktop.org tkng at freedesktop.org
Mon Jul 25 10:52:39 EST 2005


Author: tkng
Date: 2005-07-24 17:52:37 -0700 (Sun, 24 Jul 2005)
New Revision: 1028

Modified:
   branches/r5rs/
   branches/r5rs/uim/uim.c
Log:
 r1028 at t42 (orig r1027):  tkng | 2005-07-25 09:27:12 +0900
 * uim/uim.c:
  -(uim_quit): Return if uim_quit already called.
 



Property changes on: branches/r5rs
___________________________________________________________________
Name: svk:merge
   - fb73e508-85ea-0310-95c3-a85c473e0941:/trunk:1004
   + fb73e508-85ea-0310-95c3-a85c473e0941:/trunk:1027

Modified: branches/r5rs/uim/uim.c
===================================================================
--- branches/r5rs/uim/uim.c	2005-07-25 00:27:12 UTC (rev 1027)
+++ branches/r5rs/uim/uim.c	2005-07-25 00:52:37 UTC (rev 1028)
@@ -58,6 +58,7 @@
 struct uim_im *uim_im_array;
 int uim_nr_im;
 static int uim_initialized;
+static int uim_quiting;
 
 void
 uim_set_preedit_cb(uim_context uc,
@@ -670,9 +671,11 @@
 {
   int i;
 
-  if (!uim_initialized) {
+  if (!uim_initialized || uim_quiting) {
     return;
   }
+  /* Some multithreaded applications calls uim_quit bursty. */
+  uim_quiting = 1;
 
   /* release still active contexts */
   for (i = 0; i < CONTEXT_ARRAY_SIZE; i++) {
@@ -686,4 +689,5 @@
   free(uim_last_client_encoding);
   uim_last_client_encoding = NULL;
   uim_initialized = 0;
+  uim_quiting = 0;
 }



More information about the uim-commit mailing list