~sircmpwn/aerc

5090a4c8026cca61652c6333b1352c2c21789912 — Kevin Kuehler 1 year, 4 months ago 6e745cb
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>
1 files changed, 12 insertions(+), 8 deletions(-)

M widgets/account.go
M widgets/account.go => widgets/account.go +12 -8
@@ 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)).