aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--view.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/view.c b/view.c
index d69f488..fc9c999 100644
--- a/view.c
+++ b/view.c
@@ -1196,8 +1196,11 @@ void view_selections_clear_all(View *view) {
}
void view_selections_dispose_all(View *view) {
- for (Selection *s = view->selections, *next; s; s = next) {
- next = s->next;
+ Selection *last = view->selections;
+ while (last->next)
+ last = last->next;
+ for (Selection *s = last, *prev; s; s = prev) {
+ prev = s->prev;
if (s != view->selection)
selection_free(s);
}