[Goodies-commits] r3012 - ristretto/trunk/src

Stephan Arts stephan at xfce.org
Mon Aug 20 01:40:15 CEST 2007


Author: stephan
Date: 2007-08-19 23:40:15 +0000 (Sun, 19 Aug 2007)
New Revision: 3012

Modified:
   ristretto/trunk/src/main.c
   ristretto/trunk/src/navigator.c
   ristretto/trunk/src/picture_viewer.c
   ristretto/trunk/src/picture_viewer.h
Log:
Fix memory leaks and remove a memory-peak.



Modified: ristretto/trunk/src/main.c
===================================================================
--- ristretto/trunk/src/main.c	2007-08-19 23:28:31 UTC (rev 3011)
+++ ristretto/trunk/src/main.c	2007-08-19 23:40:15 UTC (rev 3012)
@@ -690,7 +690,6 @@
     GtkWindow *window = GTK_WINDOW(widget);
     if(!gtk_window_activate_key(window, event))
     {
-        g_debug("A");
         switch(event->keyval)
         {
             case GDK_F11:

Modified: ristretto/trunk/src/navigator.c
===================================================================
--- ristretto/trunk/src/navigator.c	2007-08-19 23:28:31 UTC (rev 3011)
+++ ristretto/trunk/src/navigator.c	2007-08-19 23:40:15 UTC (rev 3012)
@@ -143,6 +143,14 @@
 void
 rstto_navigator_jump_first (RsttoNavigator *navigator)
 {
+    if(navigator->file_iter)
+    {
+        if(((RsttoNavigatorEntry *)navigator->file_iter->data)->pixbuf)
+        {
+            g_object_unref(((RsttoNavigatorEntry *)navigator->file_iter->data)->pixbuf);
+            ((RsttoNavigatorEntry *)navigator->file_iter->data)->pixbuf = NULL;
+        }
+    }
     navigator->file_iter = g_list_first(navigator->file_list);
     if(navigator->file_iter)
     {
@@ -153,9 +161,15 @@
 void
 rstto_navigator_jump_forward (RsttoNavigator *navigator)
 {
-
     if(navigator->file_iter)
+    {
+        if(((RsttoNavigatorEntry *)navigator->file_iter->data)->pixbuf)
+        {
+            g_object_unref(((RsttoNavigatorEntry *)navigator->file_iter->data)->pixbuf);
+            ((RsttoNavigatorEntry *)navigator->file_iter->data)->pixbuf = NULL;
+        }
         navigator->file_iter = g_list_next(navigator->file_iter);
+    }
     if(!navigator->file_iter)
         navigator->file_iter = g_list_first(navigator->file_list);
 
@@ -169,7 +183,14 @@
 rstto_navigator_jump_back (RsttoNavigator *navigator)
 {
     if(navigator->file_iter)
+    {
+        if(((RsttoNavigatorEntry *)navigator->file_iter->data)->pixbuf)
+        {
+            g_object_unref(((RsttoNavigatorEntry *)navigator->file_iter->data)->pixbuf);
+            ((RsttoNavigatorEntry *)navigator->file_iter->data)->pixbuf = NULL;
+        }
         navigator->file_iter = g_list_previous(navigator->file_iter);
+    }
     if(!navigator->file_iter)
         navigator->file_iter = g_list_last(navigator->file_list);
 
@@ -182,6 +203,14 @@
 void
 rstto_navigator_jump_last (RsttoNavigator *navigator)
 {
+    if(navigator->file_iter)
+    {
+        if(((RsttoNavigatorEntry *)navigator->file_iter->data)->pixbuf)
+        {
+            g_object_unref(((RsttoNavigatorEntry *)navigator->file_iter->data)->pixbuf);
+            ((RsttoNavigatorEntry *)navigator->file_iter->data)->pixbuf = NULL;
+        }
+    }
     navigator->file_iter = g_list_last(navigator->file_list);
 
     if(navigator->file_iter)
@@ -239,6 +268,14 @@
 void
 rstto_navigator_add (RsttoNavigator *navigator, RsttoNavigatorEntry *entry)
 {
+    if(navigator->file_iter)
+    {
+        if(((RsttoNavigatorEntry *)navigator->file_iter->data)->pixbuf)
+        {
+            g_object_unref(((RsttoNavigatorEntry *)navigator->file_iter->data)->pixbuf);
+            ((RsttoNavigatorEntry *)navigator->file_iter->data)->pixbuf = NULL;
+        }
+    }
     navigator->file_list = g_list_insert_sorted(navigator->file_list, entry, navigator->compare_func);
     if (!navigator->file_iter)
     {
@@ -261,6 +298,14 @@
 void
 rstto_navigator_set_file (RsttoNavigator *navigator, gint n)
 {
+    if(navigator->file_iter)
+    {
+        if(((RsttoNavigatorEntry *)navigator->file_iter->data)->pixbuf)
+        {
+            g_object_unref(((RsttoNavigatorEntry *)navigator->file_iter->data)->pixbuf);
+            ((RsttoNavigatorEntry *)navigator->file_iter->data)->pixbuf = NULL;
+        }
+    }
     navigator->file_iter = g_list_nth(navigator->file_list, n);
     if(navigator->file_iter)
     {
@@ -334,6 +379,14 @@
 void
 rstto_navigator_entry_free(RsttoNavigatorEntry *nav_entry)
 {
+    if(nav_entry->pixbuf)
+    {
+        g_object_unref(nav_entry->pixbuf);
+    }
+    if(nav_entry->thumb)
+    {
+        g_object_unref(nav_entry->thumb);
+    }
     thunar_vfs_info_unref(nav_entry->info);
     g_free(nav_entry);
 }

Modified: ristretto/trunk/src/picture_viewer.c
===================================================================
--- ristretto/trunk/src/picture_viewer.c	2007-08-19 23:28:31 UTC (rev 3011)
+++ ristretto/trunk/src/picture_viewer.c	2007-08-19 23:40:15 UTC (rev 3012)
@@ -433,22 +433,6 @@
     return viewer->priv->scale;
 }
 
-void
-rstto_picture_viewer_set_pixbuf(RsttoPictureViewer *viewer, GdkPixbuf *pixbuf)
-{
-    if(viewer->priv->src_pixbuf)
-        g_object_unref(viewer->priv->src_pixbuf);
-
-    viewer->priv->src_pixbuf = pixbuf;
-
-    if(viewer->priv->src_pixbuf)
-    {
-        g_object_ref(viewer->priv->src_pixbuf);
-        rstto_picture_viewer_refresh(viewer);
-        rstto_picture_viewer_paint(GTK_WIDGET(viewer));
-    }
-}
-
 static void
 rstto_picture_viewer_refresh(RsttoPictureViewer *viewer)
 {
@@ -544,9 +528,18 @@
         gdk_cursor_unref(cursor);
     }
 
-    GdkPixbuf *pixbuf = rstto_navigator_entry_get_pixbuf(entry);
-    rstto_picture_viewer_set_pixbuf(viewer, pixbuf);   
+    if(viewer->priv->src_pixbuf)
+        g_object_unref(viewer->priv->src_pixbuf);
 
+    viewer->priv->src_pixbuf = rstto_navigator_entry_get_pixbuf(entry);
+
+    if(viewer->priv->src_pixbuf)
+    {
+        g_object_ref(viewer->priv->src_pixbuf);
+        rstto_picture_viewer_refresh(viewer);
+        rstto_picture_viewer_paint(GTK_WIDGET(viewer));
+    }
+
     if(GTK_WIDGET_REALIZED(widget))
     {
         GdkCursor *cursor = gdk_cursor_new(GDK_LEFT_PTR);

Modified: ristretto/trunk/src/picture_viewer.h
===================================================================
--- ristretto/trunk/src/picture_viewer.h	2007-08-19 23:28:31 UTC (rev 3011)
+++ ristretto/trunk/src/picture_viewer.h	2007-08-19 23:40:15 UTC (rev 3012)
@@ -70,8 +70,6 @@
 gdouble    rstto_picture_viewer_get_scale(RsttoPictureViewer *viewer);
 gdouble    rstto_picture_viewer_fit_scale(RsttoPictureViewer *viewer);
 
-void       rstto_picture_viewer_set_pixbuf(RsttoPictureViewer *viewer, GdkPixbuf *pixbuf);
-
 G_END_DECLS
 
 #endif /* __RISTRETTO_PICTURE_VIEWER_H__ */




More information about the Goodies-commits mailing list