From eeebfdcc8ccbaa598e9596bb9f966cad3e2a3a5a Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Wed, 22 Apr 2015 14:49:04 +0200 Subject: [PATCH] Fix infinite loop when deleting columns from wxTreeListCtrl. Wrong variable was checked in the loop adjusting the columns values resulting in an infinite loop. Closes #16955. --- src/generic/treelist.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/generic/treelist.cpp b/src/generic/treelist.cpp index 635ceef643..65e13b684a 100644 --- a/src/generic/treelist.cpp +++ b/src/generic/treelist.cpp @@ -170,10 +170,15 @@ public: wxScopedArray oldTexts(m_columnsTexts); m_columnsTexts = new wxString[numColumns - 2]; + + // As above, n is the index in the new column texts array and m is the + // index in the old one. for ( unsigned n = 1, m = 1; n < numColumns - 1; n++, m++ ) { - if ( n == col ) + if ( m == col ) { + // Skip copying the deleted column and keep the new index the + // same (so compensate for "n++" done in the loop). n--; } else // Not the deleted column.