diff options
author | Dan Vrátil <dvratil@redhat.com> | 2012-06-15 22:49:26 +0800 |
---|---|---|
committer | Dan Vrátil <dvratil@redhat.com> | 2012-06-18 19:42:39 +0800 |
commit | 88a372b27e655eaaa27e7b806a1adc360b1583b6 (patch) | |
tree | ddefa0742eee8d25137ee4d1e911e2e94565aa37 /mail/e-mail-display.c | |
parent | 0c2a0824be34b35528b261220d6703b33f5d868c (diff) | |
download | gsoc2013-evolution-88a372b27e655eaaa27e7b806a1adc360b1583b6.tar gsoc2013-evolution-88a372b27e655eaaa27e7b806a1adc360b1583b6.tar.gz gsoc2013-evolution-88a372b27e655eaaa27e7b806a1adc360b1583b6.tar.bz2 gsoc2013-evolution-88a372b27e655eaaa27e7b806a1adc360b1583b6.tar.lz gsoc2013-evolution-88a372b27e655eaaa27e7b806a1adc360b1583b6.tar.xz gsoc2013-evolution-88a372b27e655eaaa27e7b806a1adc360b1583b6.tar.zst gsoc2013-evolution-88a372b27e655eaaa27e7b806a1adc360b1583b6.zip |
Fix some memory leaks
Diffstat (limited to 'mail/e-mail-display.c')
-rw-r--r-- | mail/e-mail-display.c | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/mail/e-mail-display.c b/mail/e-mail-display.c index 1ca8bcc8a9..461fb8f72d 100644 --- a/mail/e-mail-display.c +++ b/mail/e-mail-display.c @@ -1680,7 +1680,6 @@ e_mail_display_reload (EMailDisplay *display) GHashTable *table; GHashTableIter table_iter; gpointer key, val; - gchar separator; g_return_if_fail (E_IS_MAIL_DISPLAY (display)); @@ -1695,23 +1694,23 @@ e_mail_display_reload (EMailDisplay *display) return; } - base = g_strndup (uri, strstr (uri, "?") - uri); + base = g_strndup (uri, strstr (uri, "?") - uri + 1); new_uri = g_string_new (base); g_free (base); table = soup_form_decode (strstr (uri, "?") + 1); - g_hash_table_insert (table, g_strdup ("mode"), g_strdup_printf ("%d", display->priv->mode)); - g_hash_table_insert (table, g_strdup ("headers_collapsable"), g_strdup_printf ("%d", display->priv->headers_collapsable)); - g_hash_table_insert (table, g_strdup ("headers_collapsed"), g_strdup_printf ("%d", display->priv->headers_collapsed)); + g_hash_table_replace (table, g_strdup ("mode"), g_strdup_printf ("%d", display->priv->mode)); + g_hash_table_replace (table, g_strdup ("headers_collapsable"), g_strdup_printf ("%d", display->priv->headers_collapsable)); + g_hash_table_replace (table, g_strdup ("headers_collapsed"), g_strdup_printf ("%d", display->priv->headers_collapsed)); g_hash_table_iter_init (&table_iter, table); - separator = '?'; while (g_hash_table_iter_next (&table_iter, &key, &val)) { - g_string_append_printf (new_uri, "%c%s=%s", separator, + g_string_append_printf (new_uri, "%s=%s&", (gchar *) key, (gchar *) val); - if (separator == '?') - separator = '&'; + /* Free the value as Soup constructs the GHashTable without + * value_destroy_func */ + g_free (val); } e_web_view_load_uri (web_view, new_uri->str); |