[evolution/webkit: 127/177] Fix crash when loading too many images (bug #668520)



commit c5bbfe84c313703bbf07a76c8563324997e49ce0
Author: Dan VrÃtil <dvratil redhat com>
Date:   Tue Jan 24 09:51:53 2012 +0100

    Fix crash when loading too many images (bug #668520)
    
     - also fixes conversion from the http:// to evo-http:// URL in EMailDisplay

 mail/e-mail-display.c |    9 +++++++--
 mail/e-mail-request.c |    1 -
 2 files changed, 7 insertions(+), 3 deletions(-)
---
diff --git a/mail/e-mail-display.c b/mail/e-mail-display.c
index 3796c54..af997fd 100644
--- a/mail/e-mail-display.c
+++ b/mail/e-mail-display.c
@@ -580,7 +580,13 @@ mail_display_resource_requested (WebKitWebView *web_view,
                 mail_uri = em_format_build_mail_uri (formatter->folder,
                                 formatter->message_uid, NULL, NULL);
 
-                query = soup_form_decode (new_uri);
+                soup_uri = soup_uri_new (new_uri);
+                if (soup_uri->query) {
+                        query = soup_form_decode (soup_uri->query);
+                } else {
+                        query = g_hash_table_new_full (g_str_hash, g_str_equal,
+                                                       g_free, g_free);
+                }
                 enc = soup_uri_encode (mail_uri, NULL);
                 g_hash_table_insert (query, g_strdup ("__evo-mail"), enc);
 
@@ -592,7 +598,6 @@ mail_display_resource_requested (WebKitWebView *web_view,
 
                 g_free (mail_uri);
 
-                soup_uri = soup_uri_new (new_uri);
                 soup_uri_set_query_from_form (soup_uri, query);
                 g_free (new_uri);
 
diff --git a/mail/e-mail-request.c b/mail/e-mail-request.c
index c274faf..aabf23f 100644
--- a/mail/e-mail-request.c
+++ b/mail/e-mail-request.c
@@ -399,7 +399,6 @@ handle_http_request (GSimpleAsyncResult *res,
 
                 g_main_loop_unref (data.loop);
 
-                soup_session_abort (session);
                 g_object_unref (session);
 
                 g_object_unref (http_request);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]