From 0bcf4f2771b824b93fcd20ca8eb18f99688588c9 Mon Sep 17 00:00:00 2001 From: Muktha Date: Thu, 27 May 2004 09:35:24 +0000 Subject: [PATCH] Avoid recursive call of this function when the icon file is not found. 2004-19-05 Muktha * mime-type-info.c (get_icon_pixbuf): Avoid recursive call of this function when the icon file is not found. Fixes file-types capplet hang. Bug #142894. --- capplets/file-types/ChangeLog | 6 ++++++ capplets/file-types/mime-type-info.c | 5 ++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/capplets/file-types/ChangeLog b/capplets/file-types/ChangeLog index 6942356a6..068b33070 100644 --- a/capplets/file-types/ChangeLog +++ b/capplets/file-types/ChangeLog @@ -1,3 +1,9 @@ +2004-19-05 Muktha + + * mime-type-info.c (get_icon_pixbuf): Avoid recursive call of this + function when the icon file is not found. Fixes file-types capplet + hang. Bug #142894. + 2003-06-10 Shailesh Mittal * libuuid/gen_uuid.c (get_node_id): Creating an IPv6 socket if AF_INET6 diff --git a/capplets/file-types/mime-type-info.c b/capplets/file-types/mime-type-info.c index dac80b433..79adb6218 100644 --- a/capplets/file-types/mime-type-info.c +++ b/capplets/file-types/mime-type-info.c @@ -138,7 +138,7 @@ get_icon_pixbuf (MimeTypeInfo *info, const gchar *icon_path, gboolean want_large info->icon_pixbuf = gdk_pixbuf_new_from_file (icon_path, NULL); if (info->icon_pixbuf == NULL) { - get_icon_pixbuf (info, NULL, want_large); + return; } else if (!want_large) { info->small_icon_pixbuf = @@ -231,6 +231,9 @@ mime_type_info_get_icon (MimeTypeInfo *info) { if (info->small_icon_pixbuf == NULL) get_icon_pixbuf (info, mime_type_info_get_icon_path (info), FALSE); + if (info->icon_pixbuf == NULL) + get_icon_pixbuf (info, NULL, FALSE); + if (info->small_icon_pixbuf != NULL) g_object_ref (G_OBJECT (info->small_icon_pixbuf)); return info->small_icon_pixbuf;