aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMilan Crha <mcrha@redhat.com>2011-10-20 16:16:45 +0800
committerMilan Crha <mcrha@redhat.com>2011-10-20 16:16:45 +0800
commit31babe7961a6ef93419970a6d10c8843b671b466 (patch)
treed488d393207adb85aa5d9c8dcc83726df93f34ca
parentfbce8fba0c29ccd40e8952600532c75d6a9df476 (diff)
downloadgsoc2013-evolution-31babe7961a6ef93419970a6d10c8843b671b466.tar.gz
gsoc2013-evolution-31babe7961a6ef93419970a6d10c8843b671b466.tar.zst
gsoc2013-evolution-31babe7961a6ef93419970a6d10c8843b671b466.zip
Bug #527614 - Valgrind shows a nice amount of lost memory
-rw-r--r--e-util/e-signature-list.c3
-rw-r--r--e-util/gconf-bridge.c1
-rw-r--r--mail/e-mail-backend.c15
-rw-r--r--widgets/menus/gal-view-etable.c1
-rw-r--r--widgets/misc/e-account-tree-view.c3
-rw-r--r--widgets/misc/e-signature-tree-view.c2
-rw-r--r--widgets/table/e-cell-hbox.c2
-rw-r--r--widgets/table/e-cell-vbox.c2
8 files changed, 21 insertions, 8 deletions
diff --git a/e-util/e-signature-list.c b/e-util/e-signature-list.c
index 1f03cd3305..037db0fa63 100644
--- a/e-util/e-signature-list.c
+++ b/e-util/e-signature-list.c
@@ -203,6 +203,9 @@ gconf_signatures_changed (GConfClient *client,
g_free (uid);
}
+ g_slist_foreach (list, (GFunc) g_free, NULL);
+ g_slist_free (list);
+
if (!have_autogen) {
new_sigs = add_autogen (signature_list, new_sigs);
resave = TRUE;
diff --git a/e-util/gconf-bridge.c b/e-util/gconf-bridge.c
index 3de48b6e01..7f479acf67 100644
--- a/e-util/gconf-bridge.c
+++ b/e-util/gconf-bridge.c
@@ -1042,6 +1042,7 @@ list_store_binding_sync_store_to_pref (ListStoreBinding *binding)
tmp_value = gconf_value_new (GCONF_VALUE_STRING);
gconf_value_set_string (tmp_value, string);
+ g_free (string);
list = g_slist_append (list, tmp_value);
diff --git a/mail/e-mail-backend.c b/mail/e-mail-backend.c
index cb91339503..be2f94eeb9 100644
--- a/mail/e-mail-backend.c
+++ b/mail/e-mail-backend.c
@@ -544,7 +544,6 @@ mail_backend_folder_changed_cb (MailFolderCache *folder_cache,
const gchar *msg_subject,
EMailBackend *mail_backend)
{
- CamelFolder *folder = NULL;
EMEvent *event = em_event_peek ();
EMEventTargetFolder *target;
EMFolderTreeModel *model;
@@ -554,11 +553,15 @@ mail_backend_folder_changed_cb (MailFolderCache *folder_cache,
folder_uri = e_mail_folder_uri_build (store, folder_name);
- if (mail_folder_cache_get_folder_from_uri (
- folder_cache, folder_uri, &folder))
- if (folder && !mail_folder_cache_get_folder_info_flags (
- folder_cache, folder, &flags))
- g_return_if_reached ();
+ if (folder_uri) {
+ CamelFolder *folder = NULL;
+
+ if (mail_folder_cache_get_folder_from_uri (folder_cache, folder_uri, &folder))
+ if (folder && !mail_folder_cache_get_folder_info_flags (folder_cache, folder, &flags))
+ g_return_if_reached ();
+ if (folder)
+ g_object_unref (folder);
+ }
g_free (folder_uri);
diff --git a/widgets/menus/gal-view-etable.c b/widgets/menus/gal-view-etable.c
index c1fa5daf8b..a16c72bcc0 100644
--- a/widgets/menus/gal-view-etable.c
+++ b/widgets/menus/gal-view-etable.c
@@ -134,6 +134,7 @@ gal_view_etable_clone (GalView *view)
new = g_object_new (GAL_TYPE_VIEW_ETABLE, NULL);
new->spec = gve->spec;
new->title = g_strdup (gve->title);
+ g_object_unref (new->state);
new->state = e_table_state_duplicate (gve->state);
g_object_ref (new->spec);
diff --git a/widgets/misc/e-account-tree-view.c b/widgets/misc/e-account-tree-view.c
index 7eae4e14aa..bd21668e2f 100644
--- a/widgets/misc/e-account-tree-view.c
+++ b/widgets/misc/e-account-tree-view.c
@@ -301,6 +301,9 @@ account_tree_view_refresh_timeout_cb (gpointer ptree_view)
COLUMN_NAME, _("Search Folders"),
COLUMN_PROTOCOL, NULL,
-1);
+
+ g_list_free (list);
+
skip:
/* Restore the previously selected account. */
selected = e_account_tree_view_get_selected_type (tree_view);
diff --git a/widgets/misc/e-signature-tree-view.c b/widgets/misc/e-signature-tree-view.c
index 914b03ec13..62a923d8b9 100644
--- a/widgets/misc/e-signature-tree-view.c
+++ b/widgets/misc/e-signature-tree-view.c
@@ -115,6 +115,8 @@ signature_tree_view_refresh_cb (ESignatureList *signature_list,
gtk_tree_path_free (path);
}
+ g_list_free (list);
+
skip:
/* Restore the previously selected signature. */
signature = e_signature_tree_view_get_selected (tree_view);
diff --git a/widgets/table/e-cell-hbox.c b/widgets/table/e-cell-hbox.c
index a8eb4ccb76..98bbf897cd 100644
--- a/widgets/table/e-cell-hbox.c
+++ b/widgets/table/e-cell-hbox.c
@@ -350,5 +350,5 @@ e_cell_hbox_append (ECellHbox *hbox,
hbox->def_size_cols[hbox->subcell_count - 1] = size;
if (subcell)
- g_object_ref (subcell);
+ g_object_ref_sink (subcell);
}
diff --git a/widgets/table/e-cell-vbox.c b/widgets/table/e-cell-vbox.c
index 9830a06aff..bce40a8a2e 100644
--- a/widgets/table/e-cell-vbox.c
+++ b/widgets/table/e-cell-vbox.c
@@ -338,5 +338,5 @@ e_cell_vbox_append (ECellVbox *vbox,
vbox->model_cols[vbox->subcell_count - 1] = model_col;
if (subcell)
- g_object_ref (subcell);
+ g_object_ref_sink (subcell);
}