summaryrefslogtreecommitdiff
path: root/libnautilus-private
diff options
context:
space:
mode:
authorAlexander Larsson <alexl@redhat.com>2008-01-22 15:30:07 +0000
committerAlexander Larsson <alexl@src.gnome.org>2008-01-22 15:30:07 +0000
commit41af639de273e0393a9c186a9b00cec0923df6f6 (patch)
tree3ce543cfe8efe4bf411b33d722a5a37c304e7d10 /libnautilus-private
parent12f3e11424ae4c0a848a32302251ffe225253713 (diff)
downloadnautilus-41af639de273e0393a9c186a9b00cec0923df6f6.tar.gz
Don't leak icon
2008-01-22 Alexander Larsson <alexl@redhat.com> * libnautilus-private/nautilus-bookmark.c: (nautilus_bookmark_get_pixbuf): Don't leak icon * libnautilus-private/nautilus-cell-renderer-pixbuf-emblem.c: Indentation fixups * libnautilus-private/nautilus-icon-info.c: (nautilus_icon_info_get_pixbuf_nodefault): Only set toggle ref first time we get a pixbuf request. svn path=/trunk/; revision=13638
Diffstat (limited to 'libnautilus-private')
-rw-r--r--libnautilus-private/nautilus-bookmark.c2
-rw-r--r--libnautilus-private/nautilus-cell-renderer-pixbuf-emblem.c8
-rw-r--r--libnautilus-private/nautilus-icon-info.c12
3 files changed, 13 insertions, 9 deletions
diff --git a/libnautilus-private/nautilus-bookmark.c b/libnautilus-private/nautilus-bookmark.c
index 6854e3656..87494c8b3 100644
--- a/libnautilus-private/nautilus-bookmark.c
+++ b/libnautilus-private/nautilus-bookmark.c
@@ -240,6 +240,8 @@ nautilus_bookmark_get_pixbuf (NautilusBookmark *bookmark,
info = nautilus_icon_info_lookup (icon, pixel_size);
result = nautilus_icon_info_get_pixbuf_at_size (info, pixel_size);
g_object_unref (info);
+
+ g_object_unref (icon);
return result;
}
diff --git a/libnautilus-private/nautilus-cell-renderer-pixbuf-emblem.c b/libnautilus-private/nautilus-cell-renderer-pixbuf-emblem.c
index aa9b0a1e2..50b9cca58 100644
--- a/libnautilus-private/nautilus-cell-renderer-pixbuf-emblem.c
+++ b/libnautilus-private/nautilus-cell-renderer-pixbuf-emblem.c
@@ -263,9 +263,9 @@ nautilus_cell_renderer_pixbuf_emblem_get_property (GObject *object,
static void
nautilus_cell_renderer_pixbuf_emblem_set_property (GObject *object,
- guint param_id,
- const GValue *value,
- GParamSpec *pspec)
+ guint param_id,
+ const GValue *value,
+ GParamSpec *pspec)
{
GdkPixbuf *pixbuf;
NautilusCellRendererPixbufEmblem *cellpixbuf = NAUTILUS_CELL_RENDERER_PIXBUF_EMBLEM (object);
@@ -343,7 +343,7 @@ nautilus_cell_renderer_pixbuf_emblem_new (void)
static void
nautilus_cell_renderer_pixbuf_emblem_create_stock_pixbuf (NautilusCellRendererPixbufEmblem *cellpixbuf,
- GtkWidget *widget)
+ GtkWidget *widget)
{
NautilusCellRendererPixbufEmblemInfo *cellinfo = g_object_get_data (G_OBJECT (cellpixbuf), CELLINFO_KEY);
diff --git a/libnautilus-private/nautilus-icon-info.c b/libnautilus-private/nautilus-icon-info.c
index 0081954df..eb8e9e674 100644
--- a/libnautilus-private/nautilus-icon-info.c
+++ b/libnautilus-private/nautilus-icon-info.c
@@ -437,11 +437,13 @@ nautilus_icon_info_get_pixbuf_nodefault (NautilusIconInfo *icon)
res = NULL;
} else {
res = g_object_ref (icon->pixbuf);
- icon->sole_owner = FALSE;
-
- g_object_add_toggle_ref (G_OBJECT (res),
- pixbuf_toggle_notify,
- icon);
+
+ if (icon->sole_owner) {
+ icon->sole_owner = FALSE;
+ g_object_add_toggle_ref (G_OBJECT (res),
+ pixbuf_toggle_notify,
+ icon);
+ }
}
return res;