Author: ek.kato
Date: Thu Oct 30 02:24:00 2008
New Revision: 5612
Modified:
trunk/gtk/caret-state-indicator.c
trunk/gtk/gtk-im-uim.c
trunk/gtk/uim-eb.c
Log:
* gtk/uim-eb.c (uim_eb_destroy) : Plug leak.
* gtk/gtk-im-uim.c (im_uim_set_client_window): Ditto.
* gtk/caret-state-indicator.c
- (caret_state_indicator_destroy_cb) : New function to plug
leak.
- (caret_state_indicator_new) : Connect to
caret_state_indicator_destroy_cb().
Modified: trunk/gtk/caret-state-indicator.c
==============================================================================
--- trunk/gtk/caret-state-indicator.c (original)
+++ trunk/gtk/caret-state-indicator.c Thu Oct 30 02:24:00 2008
@@ -89,6 +89,20 @@
return FALSE;
}
+static gint
+caret_state_indicator_destroy_cb(GtkWidget *window)
+{
+ GList *label_list, *frame_list;
+
+ label_list = g_object_get_data(G_OBJECT(window), "labels");
+ frame_list = g_object_get_data(G_OBJECT(window), "frames");
+
+ g_list_free(label_list);
+ g_list_free(frame_list);
+
+ return FALSE;
+}
+
GtkWidget *
caret_state_indicator_new(void)
{
@@ -110,6 +124,9 @@
g_signal_connect(window, "expose_event",
G_CALLBACK(caret_state_indicator_paint_window),
+ NULL);
+ g_signal_connect(window, "destroy",
+ G_CALLBACK(caret_state_indicator_destroy_cb),
NULL);
gtk_misc_set_alignment(GTK_MISC(label), 0.5, 0.5);
Modified: trunk/gtk/gtk-im-uim.c
==============================================================================
--- trunk/gtk/gtk-im-uim.c (original)
+++ trunk/gtk/gtk-im-uim.c Thu Oct 30 02:24:00 2008
@@ -1347,11 +1347,8 @@
IMUIMContext *uic = IM_UIM_CONTEXT(ic);
if (w) {
- g_object_ref(w);
uic->win = w;
} else {
- if (uic->win)
- g_object_unref(uic->win);
uic->win = NULL;
}
update_client_widget(uic);
Modified: trunk/gtk/uim-eb.c
==============================================================================
--- trunk/gtk/uim-eb.c (original)
+++ trunk/gtk/uim-eb.c Thu Oct 30 02:24:00 2008
@@ -109,6 +109,7 @@
eb_ref_count--;
if (eb_ref_count == 0)
eb_finalize_library();
+ free(ueb);
}