diff options
author | Dan Winship <danw@src.gnome.org> | 2001-05-04 23:26:13 +0800 |
---|---|---|
committer | Dan Winship <danw@src.gnome.org> | 2001-05-04 23:26:13 +0800 |
commit | 39319663e823bd6e7dc051e8fac2f7e88f4ae6fb (patch) | |
tree | ba05d19fddc04f5b157c8649dee471b07b9d95df /camel/providers/imap | |
parent | 76c3e060b79bb6fd90c8800086178b209b89c381 (diff) | |
download | gsoc2013-evolution-39319663e823bd6e7dc051e8fac2f7e88f4ae6fb.tar gsoc2013-evolution-39319663e823bd6e7dc051e8fac2f7e88f4ae6fb.tar.gz gsoc2013-evolution-39319663e823bd6e7dc051e8fac2f7e88f4ae6fb.tar.bz2 gsoc2013-evolution-39319663e823bd6e7dc051e8fac2f7e88f4ae6fb.tar.lz gsoc2013-evolution-39319663e823bd6e7dc051e8fac2f7e88f4ae6fb.tar.xz gsoc2013-evolution-39319663e823bd6e7dc051e8fac2f7e88f4ae6fb.tar.zst gsoc2013-evolution-39319663e823bd6e7dc051e8fac2f7e88f4ae6fb.zip |
Fix up refcounting on current_folder.
* providers/imap/camel-imap-store.c (get_folder_online): Fix up
refcounting on current_folder.
* camel-disco-folder.c, camel-disco-store.h: Remove
CamelDiscoDiary refs that weren't supposed to escape yet.
svn path=/trunk/; revision=9667
Diffstat (limited to 'camel/providers/imap')
-rw-r--r-- | camel/providers/imap/camel-imap-store.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/camel/providers/imap/camel-imap-store.c b/camel/providers/imap/camel-imap-store.c index 0a5c4425ac..74f420fe41 100644 --- a/camel/providers/imap/camel-imap-store.c +++ b/camel/providers/imap/camel-imap-store.c @@ -803,7 +803,10 @@ get_folder_online (CamelStore *store, const char *folder_name, /* Lock around the whole lot to check/create atomically */ CAMEL_IMAP_STORE_LOCK (imap_store, command_lock); - imap_store->current_folder = NULL; + if (imap_store->current_folder) { + camel_object_unref (CAMEL_OBJECT (imap_store->current_folder)); + imap_store->current_folder = NULL; + } response = camel_imap_command (imap_store, NULL, NULL, "SELECT %S", folder_name); if (!response) { @@ -833,7 +836,8 @@ get_folder_online (CamelStore *store, const char *folder_name, if (camel_exception_is_set (ex)) { camel_object_unref (CAMEL_OBJECT (new_folder)); new_folder = imap_store->current_folder = NULL; - } + } else + camel_object_ref (CAMEL_OBJECT (imap_store->current_folder)); } camel_imap_response_free_without_processing (imap_store, response); |