aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKevin Kuehler <keur@ocf.berkeley.edu>2019-06-02 01:48:03 -0700
committerDrew DeVault <sir@cmpwn.com>2019-06-02 09:43:55 -0400
commit5090a4c8026cca61652c6333b1352c2c21789912 (patch)
tree2d62efb8752e916ee53385703bc9635ae9e8e46a
parent6e745cb9f39bac86bdd3492334b6493ff24401c1 (diff)
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.go20
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)).