summaryrefslogtreecommitdiff
path: root/gtk/gtkcellrendererpixbuf.c
diff options
context:
space:
mode:
authorKristian Rietveld <kris@gtk.org>2003-12-17 22:56:27 +0000
committerKristian Rietveld <kristian@src.gnome.org>2003-12-17 22:56:27 +0000
commite6e76e1cac60c978e6f86d3f813e577e722cb23d (patch)
tree86e3190e52d90b29ba19dff298f3b121717763e3 /gtk/gtkcellrendererpixbuf.c
parent3ea41a9212435b879708d8fd42bef0f9be01ce7c (diff)
downloadgtk+-e6e76e1cac60c978e6f86d3f813e577e722cb23d.tar.gz
if we set a new stock_id and there was a previous stock_id, unref the
Wed Dec 17 23:50:56 2003 Kristian Rietveld <kris@gtk.org> * gtk/gtkcellrendererpixbuf.c (gtk_cell_renderer_pixbuf_set_property): if we set a new stock_id and there was a previous stock_id, unref the pixbuf (since it was used to renderer the previous stock_id and stock_id might have been set to NULL now). (Fixes #122966).
Diffstat (limited to 'gtk/gtkcellrendererpixbuf.c')
-rw-r--r--gtk/gtkcellrendererpixbuf.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/gtk/gtkcellrendererpixbuf.c b/gtk/gtkcellrendererpixbuf.c
index 64fa881354..6c6a6007ea 100644
--- a/gtk/gtkcellrendererpixbuf.c
+++ b/gtk/gtkcellrendererpixbuf.c
@@ -277,7 +277,14 @@ gtk_cell_renderer_pixbuf_set_property (GObject *object,
break;
case PROP_STOCK_ID:
if (cellinfo->stock_id)
- g_free (cellinfo->stock_id);
+ {
+ if (cellpixbuf->pixbuf)
+ {
+ g_object_unref (cellpixbuf->pixbuf);
+ cellpixbuf->pixbuf = NULL;
+ }
+ g_free (cellinfo->stock_id);
+ }
cellinfo->stock_id = g_strdup (g_value_get_string (value));
break;
case PROP_STOCK_SIZE: