[evolution/gnome-3-22] Fix few memory leaks
- From: Milan Crha <mcrha src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution/gnome-3-22] Fix few memory leaks
- Date: Mon, 9 Jan 2017 14:06:38 +0000 (UTC)
commit 4c86c567c988759fa901e146f16ce6c0eebfeec7
Author: Milan Crha <mcrha redhat com>
Date: Mon Jan 9 15:07:28 2017 +0100
Fix few memory leaks
calendar/gui/itip-utils.c | 6 +++++-
e-util/e-name-selector-entry.c | 2 ++
modules/itip-formatter/e-mail-formatter-itip.c | 16 ++++++++++++----
.../e-mail-display-popup-text-highlight.c | 18 ++++++++++++++++++
4 files changed, 37 insertions(+), 5 deletions(-)
---
diff --git a/calendar/gui/itip-utils.c b/calendar/gui/itip-utils.c
index c873e99..1d9091a 100644
--- a/calendar/gui/itip-utils.c
+++ b/calendar/gui/itip-utils.c
@@ -466,6 +466,8 @@ itip_get_comp_attendee (ESourceRegistry *registry,
g_free (address);
+ g_list_free_full (list, g_object_unref);
+
return user_email;
}
@@ -483,13 +485,15 @@ itip_get_comp_attendee (ESourceRegistry *registry,
g_free (address);
+ g_list_free_full (list, g_object_unref);
+
return user_email;
}
g_free (address);
}
- g_list_free_full (list, (GDestroyNotify) g_object_unref);
+ g_list_free_full (list, g_object_unref);
/* We could not find the attendee in the component, so just give
* the default account address if the email address is not set in
diff --git a/e-util/e-name-selector-entry.c b/e-util/e-name-selector-entry.c
index 94b92a5..fa6561e 100644
--- a/e-util/e-name-selector-entry.c
+++ b/e-util/e-name-selector-entry.c
@@ -2065,6 +2065,8 @@ user_focus_in (ENameSelectorEntry *name_selector_entry,
if (str->str && str->str[0])
g_string_append (str, ", ");
+ g_clear_object (&dest_dummy);
+
gtk_entry_set_text (GTK_ENTRY (name_selector_entry), str->str);
g_string_free (str, TRUE);
diff --git a/modules/itip-formatter/e-mail-formatter-itip.c b/modules/itip-formatter/e-mail-formatter-itip.c
index 9ac5751..ab088ab 100644
--- a/modules/itip-formatter/e-mail-formatter-itip.c
+++ b/modules/itip-formatter/e-mail-formatter-itip.c
@@ -87,11 +87,11 @@ emfe_itip_format (EMailFormatterExtension *extension,
itip_view_write (itip_part, formatter, buffer);
} else {
- CamelFolder *folder;
- CamelMimeMessage *message;
+ CamelFolder *folder, *old_folder;
+ CamelMimeMessage *message, *old_message;
const gchar *message_uid;
const gchar *default_charset, *charset;
- gchar *uri;
+ gchar *uri, *old_message_uid;
folder = e_mail_part_list_get_folder (context->part_list);
message = e_mail_part_list_get_message (context->part_list);
@@ -107,9 +107,17 @@ emfe_itip_format (EMailFormatterExtension *extension,
folder, message_uid, "$has_cal", TRUE);
}
+ old_folder = itip_part->folder;
+ old_message = itip_part->message;
+ old_message_uid = itip_part->message_uid;
+
itip_part->folder = g_object_ref (folder);
- itip_part->message_uid = g_strdup (message_uid);
itip_part->message = g_object_ref (message);
+ itip_part->message_uid = g_strdup (message_uid);
+
+ g_clear_object (&old_folder);
+ g_clear_object (&old_message);
+ g_free (old_message_uid);
default_charset = e_mail_formatter_get_default_charset (formatter);
charset = e_mail_formatter_get_charset (formatter);
diff --git a/modules/text-highlight/e-mail-display-popup-text-highlight.c
b/modules/text-highlight/e-mail-display-popup-text-highlight.c
index a28932e..b5f54e7 100644
--- a/modules/text-highlight/e-mail-display-popup-text-highlight.c
+++ b/modules/text-highlight/e-mail-display-popup-text-highlight.c
@@ -329,6 +329,20 @@ update_actions (EMailDisplayPopupExtension *extension,
}
}
+static void
+e_mail_display_popup_text_highlight_finalize (GObject *object)
+{
+ EMailDisplayPopupTextHighlight *extension;
+
+ extension = E_MAIL_DISPLAY_POPUP_TEXT_HIGHLIGHT (object);
+
+ g_clear_object (&extension->action_group);
+ g_free (extension->document_uri);
+
+ /* Chain up to parent's method */
+ G_OBJECT_CLASS (e_mail_display_popup_text_highlight_parent_class)->finalize (object);
+}
+
void
e_mail_display_popup_text_highlight_type_register (GTypeModule *type_module)
{
@@ -338,12 +352,16 @@ e_mail_display_popup_text_highlight_type_register (GTypeModule *type_module)
static void
e_mail_display_popup_text_highlight_class_init (EMailDisplayPopupTextHighlightClass *klass)
{
+ GObjectClass *object_class;
EExtensionClass *extension_class;
e_mail_display_popup_text_highlight_parent_class = g_type_class_peek_parent (klass);
extension_class = E_EXTENSION_CLASS (klass);
extension_class->extensible_type = E_TYPE_MAIL_DISPLAY;
+
+ object_class = G_OBJECT_CLASS (klass);
+ object_class->finalize = e_mail_display_popup_text_highlight_finalize;
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]