[evolution] Memory leaks

Chris Heath <[email protected]>
Newsgroups gmane.comp.gnome.evolution.patches
Message-ID <[email protected]>
Here is a patch for memory leaks I found in evolution.  Please review
and apply.


Index: addressbook/ChangeLog
===================================================================
RCS file: /cvs/gnome/evolution/addressbook/ChangeLog,v
retrieving revision 1.2064
diff -u -p -r1.2064 ChangeLog
--- addressbook/ChangeLog	10 Mar 2006 07:28:56 -0000	1.2064
+++ addressbook/ChangeLog	27 Mar 2006 12:52:23 -0000
@@ -1,3 +1,9 @@
+2006-03-26  Chris Heath <[email protected]>
+
+	* gui/merging/eab-contact-merging.c (cancelit): Fix memory leak
+	* gui/widgets/eab-popup-control.c (eab_popup_control_set_free_form): Ditto
+	* gui/contact-editor/e-contact-quick-add.c (quick_add_merge_contact): Ditto
+
 2006-03-10  Devashish Sharma  <[email protected]>
 
 	* gui/component/ldap-config.glade : ldap port numbers
Index: addressbook/gui/contact-editor/e-contact-quick-add.c
===================================================================
RCS file: /cvs/gnome/evolution/addressbook/gui/contact-editor/e-contact-quick-add.c,v
retrieving revision 1.39
diff -u -p -r1.39 e-contact-quick-add.c
--- addressbook/gui/contact-editor/e-contact-quick-add.c	23 Jan 2006 11:55:06 -0000	1.39
+++ addressbook/gui/contact-editor/e-contact-quick-add.c	27 Mar 2006 12:52:24 -0000
@@ -138,7 +138,6 @@ merge_cb (EBook *book, EBookStatus statu
 static void
 quick_add_merge_contact (QuickAdd *qa)
 {
-	quick_add_ref (qa);
 	addressbook_load (qa->book, merge_cb, qa);
 }
 
Index: addressbook/gui/merging/eab-contact-merging.c
===================================================================
RCS file: /cvs/gnome/evolution/addressbook/gui/merging/eab-contact-merging.c,v
retrieving revision 1.7
diff -u -p -r1.7 eab-contact-merging.c
--- addressbook/gui/merging/eab-contact-merging.c	26 Nov 2005 01:51:38 -0000	1.7
+++ addressbook/gui/merging/eab-contact-merging.c	27 Mar 2006 12:52:24 -0000
@@ -123,13 +123,10 @@ doit (EContactMergingLookup *lookup)
 static void
 cancelit (EContactMergingLookup *lookup)
 {
-	if (lookup->op == E_CONTACT_MERGING_ADD) {
-		if (lookup->id_cb)
-			final_id_cb (lookup->book, E_BOOK_ERROR_CANCELLED, NULL, lookup);
-	} else if (lookup->op == E_CONTACT_MERGING_COMMIT) {
-		if (lookup->cb)
-			final_cb (lookup->book, E_BOOK_ERROR_CANCELLED, lookup);
-	}
+	if (lookup->op == E_CONTACT_MERGING_ADD)
+		final_id_cb (lookup->book, E_BOOK_ERROR_CANCELLED, NULL, lookup);
+	else if (lookup->op == E_CONTACT_MERGING_COMMIT)
+		final_cb (lookup->book, E_BOOK_ERROR_CANCELLED, lookup);
 }
 
 static void
Index: addressbook/gui/widgets/eab-popup-control.c
===================================================================
RCS file: /cvs/gnome/evolution/addressbook/gui/widgets/eab-popup-control.c,v
retrieving revision 1.16
diff -u -p -r1.16 eab-popup-control.c
--- addressbook/gui/widgets/eab-popup-control.c	27 Jan 2006 15:41:52 -0000	1.16
+++ addressbook/gui/widgets/eab-popup-control.c	27 Mar 2006 12:52:24 -0000
@@ -208,6 +208,8 @@ eab_popup_control_set_free_form (EABPopu
 		gchar *email = g_strndup (lt+1, gt-lt-1);
 		eab_popup_control_set_name (pop, name);
 		eab_popup_control_set_email (pop, email);
+		g_free(name);
+		g_free(email);
 
 		return TRUE;
 	}
Index: e-util/ChangeLog
===================================================================
RCS file: /cvs/gnome/evolution/e-util/ChangeLog,v
retrieving revision 1.587
diff -u -p -r1.587 ChangeLog
--- e-util/ChangeLog	12 Feb 2006 23:15:22 -0000	1.587
+++ e-util/ChangeLog	27 Mar 2006 12:52:26 -0000
@@ -1,3 +1,7 @@
+2006-03-26  Chris Heath <[email protected]>
+
+	* e-plugin.c (ep_construct): Fix memory leak
+
 2006-02-12  Karsten Bräckelmann  <[email protected]>
 
 	* e-error.c (e_error_newv): 
Index: e-util/e-plugin.c
===================================================================
RCS file: /cvs/gnome/evolution/e-util/e-plugin.c,v
retrieving revision 1.22
diff -u -p -r1.22 e-plugin.c
--- e-util/e-plugin.c	8 Feb 2006 11:43:02 -0000	1.22
+++ e-util/e-plugin.c	27 Mar 2006 12:52:27 -0000
@@ -188,6 +188,9 @@ ep_construct(EPlugin *ep, xmlNodePtr roo
 					oldclass = class;
 					l = NULL;
 				}
+				else {
+					g_free(class);
+				}
 				l = g_slist_prepend(l, ep);
 				g_hash_table_insert(ep_plugins_pending_hooks, oldclass, l);
 				ep->hooks_pending = g_slist_prepend(ep->hooks_pending, node);
Index: mail/ChangeLog
===================================================================
RCS file: /cvs/gnome/evolution/mail/ChangeLog,v
retrieving revision 1.3823
diff -u -p -r1.3823 ChangeLog
--- mail/ChangeLog	25 Mar 2006 17:09:58 -0000	1.3823
+++ mail/ChangeLog	27 Mar 2006 12:52:32 -0000
@@ -1,3 +1,7 @@
+2006-03-26  Chris Heath <[email protected]>
+
+	* message-list.c (message_list_finalise): Fix memory leak
+
 2006-03-25  Rajeev ramanathan <[email protected]>
 
 	**Fixes #329585
Index: mail/message-list.c
===================================================================
RCS file: /cvs/gnome/evolution/mail/message-list.c,v
retrieving revision 1.424
diff -u -p -r1.424 message-list.c
--- mail/message-list.c	10 Feb 2006 22:28:01 -0000	1.424
+++ mail/message-list.c	27 Mar 2006 12:52:33 -0000
@@ -1944,6 +1944,7 @@ message_list_finalise (GObject *object)
 		message_list->hidden_pool = NULL;
 	}
 
+	g_free(message_list->search);
 	g_free(message_list->frozen_search);
 	g_free(message_list->cursor_uid);
 
Index: plugins/itip-formatter/ChangeLog
===================================================================
RCS file: /cvs/gnome/evolution/plugins/itip-formatter/ChangeLog,v
retrieving revision 1.74
diff -u -p -r1.74 ChangeLog
--- plugins/itip-formatter/ChangeLog	14 Feb 2006 13:33:34 -0000	1.74
+++ plugins/itip-formatter/ChangeLog	27 Mar 2006 12:52:34 -0000
@@ -1,3 +1,7 @@
+2006-03-26  Chris Heath <[email protected]>
+
+	* itip-view.c (itip_view_destroy): Fix memory leak
+
 2006-02-14  Veerapuram Varadhan <[email protected]>
 
 	* itip-formatter.c (itip_formatter_page_factory): A typo fix from
Index: plugins/itip-formatter/itip-view.c
===================================================================
RCS file: /cvs/gnome/evolution/plugins/itip-formatter/itip-view.c,v
retrieving revision 1.24
diff -u -p -r1.24 itip-view.c
--- plugins/itip-formatter/itip-view.c	27 Jan 2006 16:33:57 -0000	1.24
+++ plugins/itip-formatter/itip-view.c	27 Mar 2006 12:52:34 -0000
@@ -756,11 +756,13 @@ itip_view_destroy (GtkObject *object) 
 		g_free (priv->sentby);
 		g_free (priv->delegator);
 		g_free (priv->attendee);
+		g_free (priv->summary);
 		g_free (priv->location);
 		g_free (priv->status);
 		g_free (priv->comment);
 		g_free (priv->start_tm);
 		g_free (priv->end_tm);
+		g_free (priv->description);
 
 		itip_view_clear_upper_info_items (view);
 		itip_view_clear_lower_info_items (view);
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.