aboutsummaryrefslogtreecommitdiff
path: root/widgets
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 /widgets
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>
Diffstat (limited to 'widgets')
-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)).