+2001-05-04 Dan Winship <danw@ximian.com>
+
+ * 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.
+
2001-05-03 Dan Winship <danw@ximian.com>
* camel-disco-store.c: new abstract class for disconnectable
#include <config.h>
#endif
-#include "camel-disco-diary.h"
#include "camel-disco-folder.h"
#include "camel-disco-store.h"
#include "camel-exception.h"
/* 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) {
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);