diff options
author | Tom Lebreux <tomlebreux@cock.li> | 2019-04-05 15:03:18 -0400 |
---|---|---|
committer | Drew DeVault <sir@cmpwn.com> | 2019-04-05 15:24:00 -0400 |
commit | 41212a717e9012179e4333a68efdf52f3f3dadab (patch) | |
tree | 84a9f42d8ee8885367178daea03448518557de36 /widgets/msglist.go | |
parent | 8a42dfc87c61a393983ad6da895e74056f9b2fac (diff) | |
download | aerc-41212a717e9012179e4333a68efdf52f3f3dadab.tar.gz |
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 <tomlebreux@cock.li>
Diffstat (limited to 'widgets/msglist.go')
-rw-r--r-- | widgets/msglist.go | 6 |
1 files changed, 4 insertions, 2 deletions
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() } |