diff options
author | Alexander Larsson <alexl@redhat.com> | 2008-01-22 15:30:07 +0000 |
---|---|---|
committer | Alexander Larsson <alexl@src.gnome.org> | 2008-01-22 15:30:07 +0000 |
commit | 41af639de273e0393a9c186a9b00cec0923df6f6 (patch) | |
tree | 3ce543cfe8efe4bf411b33d722a5a37c304e7d10 /libnautilus-private | |
parent | 12f3e11424ae4c0a848a32302251ffe225253713 (diff) | |
download | nautilus-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.c | 2 | ||||
-rw-r--r-- | libnautilus-private/nautilus-cell-renderer-pixbuf-emblem.c | 8 | ||||
-rw-r--r-- | libnautilus-private/nautilus-icon-info.c | 12 |
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; |