[Anthy-dev 798] Segfault when changing IM on gedit

Back to archive index

Seiichi SATO ssato****@sh*****
2004年 5月 2日 (日) 17:20:13 JST


佐藤精一です。

2ch で報告されている gedit で変換エンジンを切替えると落ちる問題
ですが、手元で再現したので追いかけてみました。
前回送ったパッチ[Anthy-dev 739]では不十分だったみたいなので、
追加のパッチを添付します。

-- 
Seiichi

-------------- next part --------------
--- uim-0.3.5.orig/uim/uim.c	2004-04-24 12:17:28.000000000 +0900
+++ uim-0.3.5/uim/uim.c	2004-05-02 16:34:30.000000000 +0900
@@ -579,6 +579,11 @@
 uim_quit(void)
 {
   int i;
+
+  if (!uim_initialized) {
+    return;
+  }
+
   /* release still active contexts */
   for (i = 0; i < CONTEXT_ARRAY_SIZE; i++) {
     if (context_array[i]) {
--- uim-0.3.5.orig/uim/canna.c	2004-04-18 12:15:01.000000000 +0900
+++ uim-0.3.5/uim/canna.c	2004-05-02 16:35:27.000000000 +0900
@@ -474,16 +474,22 @@
 void
 uim_quit_canna(void)
 {
-  if(cannaserver != NULL)
+  if(cannaserver != NULL) {
      free(cannaserver);
+     cannaserver = NULL;
+  }
 
   if(api.RkFinalize)
      api.RkFinalize();
 
-  if(api.lib)
+  if(api.lib) {
      dlclose(api.lib);
+     memset(&api, 0, sizeof(struct canna_api));
+  }
 
-  if(context_array != NULL)
+  if(context_array != NULL) {
      free(context_array);
+     context_array = NULL;
+  }
 }
 #endif /* HAVE_CANNA_RK_H */


Anthy-dev メーリングリストの案内
Back to archive index