[evolution] Fix few memory leaks, mostly around gtk_..._new_with_model()
- From: Milan Crha <mcrha src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution] Fix few memory leaks, mostly around gtk_..._new_with_model()
- Date: Wed, 4 Jul 2018 12:09:20 +0000 (UTC)
commit cf5a87be82b101d67ec10614f55355cc7a7342a5
Author: Milan Crha <mcrha redhat com>
Date: Wed Jul 4 14:07:12 2018 +0200
Fix few memory leaks, mostly around gtk_..._new_with_model()
src/e-util/e-table-config.c | 1 +
src/e-util/test-contact-store.c | 2 ++
src/mail/e-mail-config-assistant.c | 2 +-
src/mail/e-mail-config-provider-page.c | 1 +
src/mail/em-vfolder-editor-rule.c | 13 ++++++++++++-
5 files changed, 17 insertions(+), 2 deletions(-)
---
diff --git a/src/e-util/e-table-config.c b/src/e-util/e-table-config.c
index 8317c49fe0..0243702ccc 100644
--- a/src/e-util/e-table-config.c
+++ b/src/e-util/e-table-config.c
@@ -647,6 +647,7 @@ e_table_proxy_gtk_combo_text_new (void)
store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_STRING);
combo_box = gtk_combo_box_new_with_model (GTK_TREE_MODEL (store));
+ g_object_unref (store);
renderer = gtk_cell_renderer_text_new ();
gtk_cell_layout_pack_start (
diff --git a/src/e-util/test-contact-store.c b/src/e-util/test-contact-store.c
index d62836c7dc..cf391022a1 100644
--- a/src/e-util/test-contact-store.c
+++ b/src/e-util/test-contact-store.c
@@ -118,6 +118,8 @@ start_test (const gchar *param)
g_signal_connect (entry, "changed", G_CALLBACK (entry_changed), contact_store);
+ g_object_unref (contact_store);
+
gtk_widget_show_all (window);
return FALSE;
diff --git a/src/mail/e-mail-config-assistant.c b/src/mail/e-mail-config-assistant.c
index 8aba8afb27..5307f1f90e 100644
--- a/src/mail/e-mail-config-assistant.c
+++ b/src/mail/e-mail-config-assistant.c
@@ -208,7 +208,7 @@ mail_config_assistant_list_providers (void)
}
while ((link = g_queue_pop_head (&trash)) != NULL)
- list = g_list_remove_link (list, link);
+ list = g_list_delete_link (list, link);
return list;
}
diff --git a/src/mail/e-mail-config-provider-page.c b/src/mail/e-mail-config-provider-page.c
index 417075771e..0e46b12718 100644
--- a/src/mail/e-mail-config-provider-page.c
+++ b/src/mail/e-mail-config-provider-page.c
@@ -456,6 +456,7 @@ mail_config_provider_page_add_options (EMailConfigProviderPage *page,
gtk_label_set_mnemonic_widget (GTK_LABEL (label), combo);
gtk_box_pack_start (GTK_BOX (hbox), combo, FALSE, FALSE, 0);
gtk_widget_show (combo);
+ g_object_unref (store);
e_binding_bind_property_full (
settings, entry->name,
diff --git a/src/mail/em-vfolder-editor-rule.c b/src/mail/em-vfolder-editor-rule.c
index 8385c4c3a9..559903c62f 100644
--- a/src/mail/em-vfolder-editor-rule.c
+++ b/src/mail/em-vfolder-editor-rule.c
@@ -211,6 +211,17 @@ struct _source_data {
GtkWidget *buttons[BUTTON_LAST];
};
+static void
+source_data_free (gpointer ptr)
+{
+ struct _source_data *sd = ptr;
+
+ if (sd) {
+ g_clear_object (&sd->model);
+ g_free (sd);
+ }
+}
+
static void
set_sensitive (struct _source_data *data)
{
@@ -517,7 +528,7 @@ get_widget (EFilterRule *fr,
gtk_orientable_set_orientation (GTK_ORIENTABLE (frame), GTK_ORIENTATION_VERTICAL);
gtk_grid_set_row_spacing (GTK_GRID (frame), 6);
- g_object_set_data_full (G_OBJECT (frame), "data", data, g_free);
+ g_object_set_data_full (G_OBJECT (frame), "data", data, source_data_free);
tmp = g_strdup_printf ("<b>%s</b>", _("Search Folder Sources"));
label = gtk_label_new (tmp);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]