From 5090a4c8026cca61652c6333b1352c2c21789912 Mon Sep 17 00:00:00 2001 From: Kevin Kuehler Date: Sun, 2 Jun 2019 01:48:03 -0700 Subject: [PATCH] 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 --- widgets/account.go | 20 ++++++++++++-------- 1 file 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)).