diff options
author | Kristian Rietveld <kris@gtk.org> | 2003-12-17 22:56:27 +0000 |
---|---|---|
committer | Kristian Rietveld <kristian@src.gnome.org> | 2003-12-17 22:56:27 +0000 |
commit | e6e76e1cac60c978e6f86d3f813e577e722cb23d (patch) | |
tree | 86e3190e52d90b29ba19dff298f3b121717763e3 /gtk/gtkcellrendererpixbuf.c | |
parent | 3ea41a9212435b879708d8fd42bef0f9be01ce7c (diff) | |
download | gtk+-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.c | 9 |
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: |