about summary refs log tree commit diff stats
path: root/widgets
diff options
context:
space:
mode:
authorTom Lebreux <tomlebreux@cock.li>2019-04-05 15:03:18 -0400
committerDrew DeVault <sir@cmpwn.com>2019-04-05 15:24:00 -0400
commit41212a717e9012179e4333a68efdf52f3f3dadab (patch)
tree84a9f42d8ee8885367178daea03448518557de36 /widgets
parent8a42dfc87c61a393983ad6da895e74056f9b2fac (diff)
downloadaerc-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')
-rw-r--r--widgets/msglist.go6
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()
 }