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>
This commit is contained in:
Kevin Kuehler 2019-06-02 01:48:03 -07:00 committed by Drew DeVault
parent 6e745cb9f3
commit 5090a4c802

View file

@ -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)).