evolution-data-server r8337 - trunk/camel
- From: sragavan svn gnome org
- To: svn-commits-list gnome org
- Subject: evolution-data-server r8337 - trunk/camel
- Date: Mon, 7 Jan 2008 05:23:00 +0000 (GMT)
Author: sragavan
Date: Mon Jan 7 05:23:00 2008
New Revision: 8337
URL: http://svn.gnome.org/viewvc/evolution-data-server?rev=8337&view=rev
Log:
2008-01-07 Srinivasa Ragavan <sragavan novell com>
** Fix for bug #405497
* camel-private.h:
* camel-vee-folder.c: (folder_changed_base),
(camel_vee_folder_finalise): Don't pass events if the object is being
destroyed.
Modified:
trunk/camel/ChangeLog
trunk/camel/camel-private.h
trunk/camel/camel-vee-folder.c
Modified: trunk/camel/ChangeLog
==============================================================================
--- trunk/camel/ChangeLog (original)
+++ trunk/camel/ChangeLog Mon Jan 7 05:23:00 2008
@@ -1,3 +1,11 @@
+2008-01-07 Srinivasa Ragavan <sragavan novell com>
+
+ ** Fix for bug #405497
+ * camel-private.h:
+ * camel-vee-folder.c: (folder_changed_base),
+ (camel_vee_folder_finalise): Don't pass events if the object is being
+ destroyed.
+
2008-01-06 Bharath Acharya <abharath novell com>
** Fix for bug #474118
Modified: trunk/camel/camel-private.h
==============================================================================
--- trunk/camel/camel-private.h (original)
+++ trunk/camel/camel-private.h Mon Jan 7 05:23:00 2008
@@ -149,6 +149,7 @@
struct _CamelVeeFolderPrivate {
+ gboolean destroyed;
GList *folders; /* lock using subfolder_lock before changing/accessing */
GList *folders_changed; /* for list of folders that have changed between updates */
Modified: trunk/camel/camel-vee-folder.c
==============================================================================
--- trunk/camel/camel-vee-folder.c (original)
+++ trunk/camel/camel-vee-folder.c Mon Jan 7 05:23:00 2008
@@ -1446,9 +1446,13 @@
static void
folder_changed_base(CamelVeeFolder *vf, CamelFolder *sub, CamelFolderChangeInfo *changes)
{
+ struct _CamelVeeFolderPrivate *p = _PRIVATE(vf);
struct _folder_changed_msg *m;
CamelSession *session = ((CamelService *)((CamelFolder *)vf)->parent_store)->session;
+ if (p->destroyed)
+ return;
+
m = camel_session_thread_msg_new(session, &folder_changed_ops, sizeof(*m));
m->changes = camel_folder_change_info_new();
camel_folder_change_info_cat(m->changes, changes);
@@ -1691,7 +1695,7 @@
CamelFolder *folder = (CamelFolder *)obj;
p = _PRIVATE(obj) = g_malloc0(sizeof(*p));
-
+
folder->folder_flags |= (CAMEL_FOLDER_HAS_SUMMARY_CAPABILITY |
CAMEL_FOLDER_HAS_SEARCH_CAPABILITY);
@@ -1717,6 +1721,8 @@
struct _CamelVeeFolderPrivate *p = _PRIVATE(vf);
CamelVeeFolder *folder_unmatched = vf->parent_vee_store ? vf->parent_vee_store->folder_unmatched : NULL;
GList *node;
+
+ p->destroyed = TRUE;
/* TODO: there may be other leaks? */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]