aerc

Working clone of aerc-mail.org
git clone git://git.danielmoch.com/aerc.git
Log | Files | Refs | README | LICENSE

commit 5090a4c8026cca61652c6333b1352c2c21789912
parent 6e745cb9f39bac86bdd3492334b6493ff24401c1
Author: Kevin Kuehler <keur@ocf.berkeley.edu>
Date:   Sun,  2 Jun 2019 01:48:03 -0700

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:
Mwidgets/account.go | 20++++++++++++--------
1 file changed, 12 insertions(+), 8 deletions(-)

diff --git 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)).