aboutsummaryrefslogtreecommitdiffstats
path: root/mail/e-mail-display.c
diff options
context:
space:
mode:
authorDan Vrátil <dvratil@redhat.com>2012-06-15 22:49:26 +0800
committerDan Vrátil <dvratil@redhat.com>2012-06-18 19:42:39 +0800
commit88a372b27e655eaaa27e7b806a1adc360b1583b6 (patch)
treeddefa0742eee8d25137ee4d1e911e2e94565aa37 /mail/e-mail-display.c
parent0c2a0824be34b35528b261220d6703b33f5d868c (diff)
downloadgsoc2013-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.c17
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);