From 41212a717e9012179e4333a68efdf52f3f3dadab Mon Sep 17 00:00:00 2001 From: Tom Lebreux Date: Fri, 5 Apr 2019 15:03:18 -0400 Subject: Fix infinite loop on empty DirectoryContents When changing to an empty directory, ml.selected is 0, and the length of ml.store.Uids is 0. The loop condition is always true so we have an infinite loop causing 100% CPU usage and prevents us to change to other directories. Signed-off-by: Tom Lebreux --- widgets/msglist.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'widgets') diff --git a/widgets/msglist.go b/widgets/msglist.go index d3c82a5..1624e64 100644 --- a/widgets/msglist.go +++ b/widgets/msglist.go @@ -111,8 +111,10 @@ func (ml *MessageList) storeUpdate(store *lib.MessageStore) { if ml.store != store { return } - for ml.selected >= len(ml.store.Uids) { - ml.Prev() + if len(ml.store.Uids) > 0 { + for ml.selected >= len(ml.store.Uids) { + ml.Prev() + } } ml.Invalidate() } -- cgit v1.2.3