[geary] Fix critical warning when deleting an account.
- From: Michael Gratton <mjog src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [geary] Fix critical warning when deleting an account.
- Date: Mon, 20 Nov 2017 23:42:45 +0000 (UTC)
commit 5906b4618f80084e1661160e271ff32dfe9f08d3
Author: Michael James Gratton <mike vee net>
Date: Mon Nov 20 16:14:22 2017 +1100
Fix critical warning when deleting an account.
* src/engine/imap-engine/imap-engine-account-synchronizer.vala
(AccountSynchronizer): Don't try to disconnect from account signals in
dtor, the instance may already be gone.
.../imap-engine-account-synchronizer.vala | 18 +++---------------
1 files changed, 3 insertions(+), 15 deletions(-)
---
diff --git a/src/engine/imap-engine/imap-engine-account-synchronizer.vala
b/src/engine/imap-engine/imap-engine-account-synchronizer.vala
index 8626737..b48b6ea 100644
--- a/src/engine/imap-engine/imap-engine-account-synchronizer.vala
+++ b/src/engine/imap-engine/imap-engine-account-synchronizer.vala
@@ -30,22 +30,12 @@ private class Geary.ImapEngine.AccountSynchronizer : Geary.BaseObject {
this.bg_queue.requeue_duplicate = false;
this.account.information.notify["prefetch-period-days"].connect(on_account_prefetch_changed);
- this.account.closed.connect(on_account_closed);
this.account.folders_available_unavailable.connect(on_folders_available_unavailable);
this.account.folders_contents_altered.connect(on_folders_contents_altered);
this.account.email_sent.connect(on_email_sent);
this.remote.ready.connect(on_account_ready);
}
- ~AccountSynchronizer() {
- this.account.information.notify["prefetch-period-days"].connect(on_account_prefetch_changed);
- this.account.closed.disconnect(on_account_closed);
- this.account.folders_available_unavailable.disconnect(on_folders_available_unavailable);
- this.account.folders_contents_altered.disconnect(on_folders_contents_altered);
- this.account.email_sent.disconnect(on_email_sent);
- this.remote.ready.disconnect(on_account_ready);
- }
-
public void stop() {
Cancellable? cancellable = this.bg_cancellable;
if (cancellable != null) {
@@ -58,16 +48,14 @@ private class Geary.ImapEngine.AccountSynchronizer : Geary.BaseObject {
}
}
- private void on_account_closed() {
- stop();
- }
-
private void on_account_prefetch_changed() {
try {
// treat as an availability check (i.e. as if the account had just opened) because
// just because this value has changed doesn't mean the contents in the folders
// have changed
- delayed_send_all(account.list_folders(), true, SYNC_DELAY_SEC);
+ if (this.account.is_open()) {
+ delayed_send_all(account.list_folders(), true, SYNC_DELAY_SEC);
+ }
} catch (Error err) {
debug("Unable to schedule re-sync for %s due to prefetch time changing: %s",
account.to_string(), err.message);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]