fix two potential memory leaks
authormishas <mikhail.sobolev@gmail.com>
Tue, 10 Apr 2007 21:52:00 +0000 (21:52 +0000)
committermishas <mikhail.sobolev@gmail.com>
Tue, 10 Apr 2007 21:52:00 +0000 (21:52 +0000)
git-svn-id: file:///svnroot/simple-launcher/trunk@163 3ba93dab-e023-0410-b42a-de7732cf370a

simple-launcher.cc
sla-list.cc

index ea6147f..fd82294 100644 (file)
@@ -273,7 +273,11 @@ void SimpleLauncherApplet::updateWidget() {
 
       gtk_event_box_set_visible_window(GTK_EVENT_BOX(button), !myTransparent);
 
-      gtk_container_add(GTK_CONTAINER(button), gtk_image_new_from_pixbuf(item->getIcon(myIconSize)));
+      {
+        GdkPixbuf *pixbuf = item->getIcon(myIconSize);
+        gtk_container_add(GTK_CONTAINER(button), gtk_image_new_from_pixbuf(pixbuf));
+        g_object_unref(G_OBJECT(pixbuf));
+      }
 
       gtk_object_set_user_data(GTK_OBJECT(button), item);
 
index 3b3a5c9..7104b8e 100644 (file)
@@ -110,7 +110,11 @@ SLAList::SLAList(int icon_size, LauncherItems& items): myWidget(NULL), myStore(N
     GtkTreeIter iter;
 
     gtk_list_store_append(myStore, &iter);
-    gtk_list_store_set(myStore, &iter, SLA_STORE_COLUMN_ICON, item->getIcon(icon_size), SLA_STORE_COLUMN_INDEX, it-myItems.myNames.begin(), -1);
+    {
+      GdkPixbuf *icon = item->getIcon(icon_size);
+      gtk_list_store_set(myStore, &iter, SLA_STORE_COLUMN_ICON, icon, SLA_STORE_COLUMN_INDEX, it-myItems.myNames.begin(), -1);
+      g_object_unref(G_OBJECT(icon));
+    }
   }
 }