diff options
Diffstat (limited to 'mail/em-format-html-display.c')
-rw-r--r-- | mail/em-format-html-display.c | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/mail/em-format-html-display.c b/mail/em-format-html-display.c index 4f98729ab5..d904bf33a6 100644 --- a/mail/em-format-html-display.c +++ b/mail/em-format-html-display.c @@ -994,17 +994,18 @@ static const EMFormatHandler *efhd_find_handler(EMFormat *emf, const char *mime_ { const EMFormatHandler *handle; - handle = ((EMFormatClass *)efhd_parent)->find_handler(emf, mime_type); - if (handle == NULL - && efhd_use_component(mime_type) - && (handle = g_hash_table_lookup(efhd_bonobo_handlers, mime_type)) == NULL) { - EMFormatHandler *h = g_malloc0(sizeof(*h)); + if (efhd_use_component(mime_type)) { + if ((handle = g_hash_table_lookup(efhd_bonobo_handlers, mime_type)) == NULL) { + EMFormatHandler *h = g_malloc0(sizeof(*h)); - h->mime_type = g_strdup(mime_type); - h->handler = efhd_bonobo_unknown; - g_hash_table_insert(efhd_bonobo_handlers, h->mime_type, h); + h->mime_type = g_strdup(mime_type); + h->handler = efhd_bonobo_unknown; + g_hash_table_insert(efhd_bonobo_handlers, h->mime_type, h); - handle = h; + handle = h; + } + } else { + handle = ((EMFormatClass *)efhd_parent)->find_handler(emf, mime_type); } return handle; |