[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