diff options
author | Kevin Kuehler <keur@ocf.berkeley.edu> | 2019-06-02 01:48:03 -0700 |
---|---|---|
committer | Drew DeVault <sir@cmpwn.com> | 2019-06-02 09:43:55 -0400 |
commit | 5090a4c8026cca61652c6333b1352c2c21789912 (patch) | |
tree | 2d62efb8752e916ee53385703bc9635ae9e8e46a | |
parent | 6e745cb9f39bac86bdd3492334b6493ff24401c1 (diff) | |
download | aerc-5090a4c8026cca61652c6333b1352c2c21789912.tar.gz |
Only add message to store if store exists
Prevents the program from panicing when changing folders too quickly. onMessage can race store creation for an AccountView. Signed-off-by: Kevin Kuehler <keur@ocf.berkeley.edu>
-rw-r--r-- | widgets/account.go | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/widgets/account.go b/widgets/account.go index bd47f46..f553a92 100644 --- a/widgets/account.go +++ b/widgets/account.go @@ -184,17 +184,21 @@ func (acct *AccountView) onMessage(msg types.WorkerMessage) { }) } case *types.DirectoryContents: - store := acct.msgStores[acct.dirlist.selected] - store.Update(msg) + if store, ok := acct.msgStores[acct.dirlist.selected]; ok { + store.Update(msg) + } case *types.FullMessage: - store := acct.msgStores[acct.dirlist.selected] - store.Update(msg) + if store, ok := acct.msgStores[acct.dirlist.selected]; ok { + store.Update(msg) + } case *types.MessageInfo: - store := acct.msgStores[acct.dirlist.selected] - store.Update(msg) + if store, ok := acct.msgStores[acct.dirlist.selected]; ok { + store.Update(msg) + } case *types.MessagesDeleted: - store := acct.msgStores[acct.dirlist.selected] - store.Update(msg) + if store, ok := acct.msgStores[acct.dirlist.selected]; ok { + store.Update(msg) + } case *types.Error: acct.logger.Printf("%v", msg.Error) acct.host.SetStatus(fmt.Sprintf("%v", msg.Error)). |