From 265e2832efe37aae95cad58c1b7157b793cd9e29 Mon Sep 17 00:00:00 2001 From: sin-ack Date: Sun, 8 Aug 2021 10:01:19 +0000 Subject: [PATCH] LibGUI: Resize the mapping rows during sort SortingProxyModel always expected the source model to have the same number of rows as long as it has not been invalidated. Now that we have granular updates, this assumption is no longer true, and we need to resize the source/proxy_rows vectors to the new size. This is safe since the values in the vector are overwritten right afterwards. --- Userland/Libraries/LibGUI/SortingProxyModel.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Userland/Libraries/LibGUI/SortingProxyModel.cpp b/Userland/Libraries/LibGUI/SortingProxyModel.cpp index fd8a4dbb519..40174b45c08 100644 --- a/Userland/Libraries/LibGUI/SortingProxyModel.cpp +++ b/Userland/Libraries/LibGUI/SortingProxyModel.cpp @@ -175,6 +175,9 @@ void SortingProxyModel::sort_mapping(Mapping& mapping, int column, SortOrder sor auto old_source_rows = mapping.source_rows; int row_count = source().row_count(mapping.source_parent); + mapping.source_rows.resize(row_count); + mapping.proxy_rows.resize(row_count); + for (int i = 0; i < row_count; ++i) mapping.source_rows[i] = i;