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);
 }


Reply via email to