Author: ek.kato
Date: Mon Jan 5 21:53:52 2009
New Revision: 5698
Modified:
trunk/uim/skk.c
trunk/uim/uim-helper-client.c
Log:
* uim/skk.c
- (free_skk_line) : Plug leak.
- (uim_plugin_instance_quit) : Plug possible leak.
* uim/uim-helper-client.c (uim_helper_close_client_fd) : Plug
leak.
Modified: trunk/uim/skk.c
==============================================================================
--- trunk/uim/skk.c (original)
+++ trunk/uim/skk.c Mon Jan 5 21:53:52 2009
@@ -480,6 +480,7 @@
}
free(sl->head);
free(sl->cands);
+ free(sl);
}
static struct skk_cand_array *
@@ -3530,25 +3531,24 @@
{
struct skk_line *sl, *tmp;
- if (!skk_dic)
- return;
-
- if (skk_dic->addr)
- munmap(skk_dic->addr, skk_dic->size);
-
- sl = skk_dic->head.next;
- while (sl) {
- tmp = sl;
- sl = sl->next;
- free_skk_line(tmp);
+ if (skk_dic) {
+ if (skk_dic->addr)
+ munmap(skk_dic->addr, skk_dic->size);
+
+ sl = skk_dic->head.next;
+ while (sl) {
+ tmp = sl;
+ sl = sl->next;
+ free_skk_line(tmp);
+ }
+
+ if (skk_dic->skkserv_state & SKK_SERV_CONNECTED)
+ close_skkserv();
+ free(skk_dic->skkserv_hostname);
+
+ free(skk_dic);
+ skk_dic = NULL;
}
-
- if (skk_dic->skkserv_state & SKK_SERV_CONNECTED)
- close_skkserv();
- free(skk_dic->skkserv_hostname);
-
- free(skk_dic);
- skk_dic = NULL;
if (use_look && skk_look_ctx) {
uim_look_finish(skk_look_ctx);
Modified: trunk/uim/uim-helper-client.c
==============================================================================
--- trunk/uim/uim-helper-client.c (original)
+++ trunk/uim/uim-helper-client.c Mon Jan 5 21:53:52 2009
@@ -153,6 +153,7 @@
if (uim_disconnect_cb)
uim_disconnect_cb();
+ free(uim_read_buf);
uim_fd = -1;
}