Hi, I recently uploaded ristretto 0.0.20-3 which includes a patch from upstream fixing a huge memory leak when using “autorefresh” feature. Debdiff attached, change is: ristretto (0.0.20-3) unstable; urgency=low [ Stefan Ott ] * debian/control: update e-mail address [ Yves-Alexis Perez ] * debian/patches: - 01_plug-memleak added, fixes a huge memleak when using autoreload. (r4842, Xfce4 #4508) * debian/rules: - add simple-patchsys rule. -- Yves-Alexis Perez <corsac@debian.org> Tue, 04 Nov 2008 08:16:23 +0100 Thanks, -- Yves-Alexis
Differences in ristretto between 0.0.20-2 and 0.0.20-3 diff -u ristretto-0.0.20/debian/rules ristretto-0.0.20/debian/rules --- ristretto-0.0.20/debian/rules +++ ristretto-0.0.20/debian/rules @@ -1,5 +1,6 @@ #!/usr/bin/make -f include /usr/share/cdbs/1/rules/debhelper.mk +include /usr/share/cdbs/1/rules/simple-patchsys.mk include /usr/share/cdbs/1/class/autotools.mk DEB_INSTALL_MANPAGES_ristretto := debian/ristretto.1 diff -u ristretto-0.0.20/debian/changelog ristretto-0.0.20/debian/changelog --- ristretto-0.0.20/debian/changelog +++ ristretto-0.0.20/debian/changelog @@ -1,3 +1,17 @@ +ristretto (0.0.20-3) unstable; urgency=low + + [ Stefan Ott ] + * debian/control: update e-mail address + + [ Yves-Alexis Perez ] + * debian/patches: + - 01_plug-memleak added, fixes a huge memleak when using autoreload. + (r4842, Xfce4 #4508) + * debian/rules: + - add simple-patchsys rule. + + -- Yves-Alexis Perez <corsac@debian.org> Tue, 04 Nov 2008 08:16:23 +0100 + ristretto (0.0.20-2) unstable; urgency=low * debian/rules: call dh_desktop so mime desktop database gets updated. diff -u ristretto-0.0.20/debian/control ristretto-0.0.20/debian/control --- ristretto-0.0.20/debian/control +++ ristretto-0.0.20/debian/control @@ -2,7 +2,7 @@ Section: x11 Priority: optional Maintainer: Debian Xfce Maintainers <pkg-xfce-devel@lists.alioth.debian.org> -Uploaders: Emanuele Rocca <ema@debian.org>, Simon Huggins <huggie@earth.li>, Stefan Ott <stefan@desire.ch>, Yves-Alexis Perez <corsac@debian.org> +Uploaders: Emanuele Rocca <ema@debian.org>, Simon Huggins <huggie@earth.li>, Stefan Ott <stefan@ott.net>, Yves-Alexis Perez <corsac@debian.org> Build-Depends: cdbs, debhelper (>= 4.1), libexif-dev, libgtk2.0-dev, libthunar-vfs-1-dev, libdbus-glib-1-dev Standards-Version: 3.8.0 Homepage: http://goodies.xfce.org/ only in patch2: unchanged: --- ristretto-0.0.20.orig/debian/patches/01_plug-memleak.patch +++ ristretto-0.0.20/debian/patches/01_plug-memleak.patch @@ -0,0 +1,87 @@ +commit f261483c28c878c1df9a6bb9b9ad7994b86e0829 +Author: stephan <stephan@6bd62a53-d0f8-0310-92b8-b27fb566919e> +Date: Wed Oct 22 05:42:19 2008 +0000 + + Plug memory leak (I think) and fix compile-warning + + + + git-svn-id: http://svn.xfce.org/svn/goodies/ristretto/trunk@5744 6bd62a53-d0f8-0310-92b8-b27fb566919e + +diff --git a/src/main_window.c b/src/main_window.c +index a18c765..b3d69c3 100644 +--- a/src/main_window.c ++++ b/src/main_window.c +@@ -438,8 +438,7 @@ rstto_main_window_init(RsttoMainWindow *window) + + g_snprintf(selection_name, 100, XFDESKTOP_SELECTION_FMT, xscreen); + +- Window root_window = GDK_ROOT_WINDOW(); + Atom xfce_desktop_atom = XInternAtom (gdk_display, "XFCE_DESKTOP_WINDOW", False); + Atom xfce_selection_atom = XInternAtom (gdk_display, selection_name, False); + if((XGetSelectionOwner(GDK_DISPLAY(), xfce_selection_atom))) + { +@@ -1215,6 +1214,7 @@ cb_rstto_main_window_set_wallpaper(GtkWidget *widget, RsttoMainWindow *window) + } + g_free(image_path_prop); + g_free(image_show_prop); ++ g_free(image_style_prop); + g_object_unref(xfdesktop_channel); + } + break; +diff --git a/src/navigator.c b/src/navigator.c +index 179051f..57ff83e 100644 +--- a/src/navigator.c ++++ b/src/navigator.c +@@ -1156,6 +1156,11 @@ rstto_navigator_entry_load_image (RsttoNavigatorEntry *entry, gboolean empty_cac + } + if ((entry->loader == NULL) && ((empty_cache == TRUE ) || entry->src_pixbuf == NULL)) + { ++ if (entry->src_pixbuf) ++ { ++ gdk_pixbuf_unref(entry->src_pixbuf); ++ entry->src_pixbuf = NULL; ++ } + entry->loader = gdk_pixbuf_loader_new(); + + g_signal_connect(entry->loader, "area-prepared", G_CALLBACK(cb_rstto_navigator_entry_area_prepared), entry); +@@ -1272,14 +1277,14 @@ cb_rstto_navigator_entry_area_prepared (GdkPixbufLoader *loader, RsttoNavigatorE + static void + cb_rstto_navigator_entry_closed (GdkPixbufLoader *loader, RsttoNavigatorEntry *entry) + { ++ GdkPixbuf *pixbuf = NULL; ++ + if (entry->src_pixbuf) + { + gdk_pixbuf_unref(entry->src_pixbuf); + entry->src_pixbuf = NULL; + } + +- GdkPixbuf *pixbuf = NULL; +- + if (entry->iter) + { + pixbuf = gdk_pixbuf_animation_iter_get_pixbuf(entry->iter); +@@ -1302,11 +1307,14 @@ cb_rstto_navigator_entry_closed (GdkPixbufLoader *loader, RsttoNavigatorEntry *e + if (pixbuf != NULL) + { + entry->src_pixbuf = gdk_pixbuf_rotate_simple(pixbuf, rstto_navigator_entry_get_rotation(entry)); ++ gdk_pixbuf_unref(pixbuf); ++ pixbuf = NULL; + if (rstto_navigator_entry_get_flip(entry, FALSE)) + { + pixbuf = entry->src_pixbuf; + entry->src_pixbuf = gdk_pixbuf_flip(pixbuf, FALSE); + gdk_pixbuf_unref(pixbuf); ++ pixbuf = NULL; + } + + if (rstto_navigator_entry_get_flip(entry, TRUE)) +@@ -1314,6 +1322,7 @@ cb_rstto_navigator_entry_closed (GdkPixbufLoader *loader, RsttoNavigatorEntry *e + pixbuf = entry->src_pixbuf; + entry->src_pixbuf = gdk_pixbuf_flip(pixbuf, TRUE); + gdk_pixbuf_unref(pixbuf); ++ pixbuf = NULL; + } + g_signal_emit(G_OBJECT(entry->navigator), rstto_navigator_signals[RSTTO_NAVIGATOR_SIGNAL_ENTRY_MODIFIED], 0, entry, NULL); + }
Attachment:
signature.asc
Description: This is a digitally signed message part