X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=gtk%2Fgtkiconhelper.c;h=58ae8a15db776402e7195525b871e10672a5192e;hb=3c8e1c92a85b2e41161698f141747ced2c574f32;hp=6f23914a8c5e83b41b3e700d5d14ad851a034619;hpb=b5d45a9edc68609608172c2aa3d9a494b137b16b;p=~andy%2Fgtk diff --git a/gtk/gtkiconhelper.c b/gtk/gtkiconhelper.c index 6f23914a8..58ae8a15d 100644 --- a/gtk/gtkiconhelper.c +++ b/gtk/gtkiconhelper.c @@ -263,7 +263,7 @@ ensure_pixbuf_for_icon_name_or_gicon (GtkIconHelper *self, self->priv->rendered_pixbuf = ensure_stated_icon_from_info (self, context, info); if (info) - gtk_icon_info_free (info); + g_object_unref (info); } static void @@ -325,7 +325,10 @@ _gtk_icon_helper_ensure_pixbuf (GtkIconHelper *self, case GTK_IMAGE_STOCK: icon_set = gtk_style_context_lookup_icon_set (context, self->priv->stock_id); - ensure_pixbuf_for_icon_set (self, context, icon_set); + if (icon_set != NULL) + ensure_pixbuf_for_icon_set (self, context, icon_set); + else + pixbuf = NULL; break; case GTK_IMAGE_ICON_SET: @@ -410,7 +413,7 @@ _gtk_icon_helper_set_icon_name (GtkIconHelper *self, _gtk_icon_helper_clear (self); if (icon_name != NULL && - g_strcmp0 (icon_name, "") != 0) + icon_name[0] != '\0') { self->priv->storage_type = GTK_IMAGE_ICON_NAME; self->priv->icon_name = g_strdup (icon_name); @@ -466,7 +469,8 @@ _gtk_icon_helper_set_stock_id (GtkIconHelper *self, { _gtk_icon_helper_clear (self); - if (stock_id != NULL) + if (stock_id != NULL && + stock_id[0] != '\0') { self->priv->storage_type = GTK_IMAGE_STOCK; self->priv->stock_id = g_strdup (stock_id);