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

Stephan Arts stephan at xfce.org
Sun Oct 14 01:27:28 CEST 2007


Author: stephan
Date: 2007-10-13 23:27:28 +0000 (Sat, 13 Oct 2007)
New Revision: 3374

Modified:
   ristretto/trunk/src/picture_viewer.c
Log:
Improve memory usage for static images
(needs some cleaning up though)



Modified: ristretto/trunk/src/picture_viewer.c
===================================================================
--- ristretto/trunk/src/picture_viewer.c	2007-10-13 23:12:10 UTC (rev 3373)
+++ ristretto/trunk/src/picture_viewer.c	2007-10-13 23:27:28 UTC (rev 3374)
@@ -853,11 +853,6 @@
 
     gint time = gdk_pixbuf_animation_iter_get_delay_time(viewer->priv->iter);
 
-    if (viewer->priv->src_pixbuf)
-    {
-        gdk_pixbuf_ref(viewer->priv->src_pixbuf);
-    }
-
     rstto_picture_viewer_refresh(viewer);
     rstto_picture_viewer_paint(GTK_WIDGET(viewer));
 
@@ -866,12 +861,16 @@
         /* update frame */
         viewer->priv->timeout_id = g_timeout_add(time, (GSourceFunc)cb_rstto_picture_viewer_update_image, viewer);
     }   
+    else
+    {
+        viewer->priv->iter = NULL;
+    }
 }
 
 static void
 cb_rstto_picture_viewer_area_updated(GdkPixbufLoader *loader, gint x, gint y, gint width, gint height, RsttoPictureViewer *viewer)
 {
-    if (1)
+    if (viewer->priv->iter)
     {
         /* Current Frame being updated?! */
         if (gdk_pixbuf_animation_iter_on_currently_loading_frame(viewer->priv->iter) == TRUE)
@@ -909,10 +908,18 @@
     if (viewer->priv->iter)
     {
         viewer->priv->src_pixbuf = gdk_pixbuf_animation_iter_get_pixbuf(viewer->priv->iter);
+        viewer->priv->src_pixbuf = gdk_pixbuf_copy(viewer->priv->src_pixbuf);
     }
-    if (viewer->priv->src_pixbuf)
+    else
     {
-        viewer->priv->src_pixbuf = gdk_pixbuf_copy(viewer->priv->src_pixbuf);
+        if (viewer->priv->loader)
+        {
+            viewer->priv->src_pixbuf = gdk_pixbuf_loader_get_pixbuf(viewer->priv->loader);
+            if (viewer->priv->src_pixbuf)
+            {
+                gdk_pixbuf_ref(viewer->priv->src_pixbuf);
+            }
+        }
     }
 
     rstto_picture_viewer_refresh(viewer);




More information about the Goodies-commits mailing list