diff options
author | Brad King <brad.king@kitware.com> | 2022-05-18 12:43:24 (GMT) |
---|---|---|
committer | Kitware Robot <kwrobot@kitware.com> | 2022-05-18 12:43:30 (GMT) |
commit | 640268c19b64d3063370872a13d267ef497139ee (patch) | |
tree | 20d4f41595d947fa1ebe16b4510e88ac32f5027c | |
parent | 44ccfdbe0b3cb9be0278b416febe0b58e4a26e77 (diff) | |
parent | 432a8ab7391c0cb3785561097283bba78ca985e5 (diff) | |
download | CMake-640268c19b64d3063370872a13d267ef497139ee.zip CMake-640268c19b64d3063370872a13d267ef497139ee.tar.gz CMake-640268c19b64d3063370872a13d267ef497139ee.tar.bz2 |
Merge topic 'ccmake-fix-infinite-loop-search' into release-3.23
432a8ab739 ccmake: Fix infinite loop during invalid search
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7269
-rw-r--r-- | Source/CursesDialog/cmCursesMainForm.cxx | 14 | ||||
-rw-r--r-- | Source/CursesDialog/cmCursesMainForm.h | 1 |
2 files changed, 8 insertions, 7 deletions
diff --git a/Source/CursesDialog/cmCursesMainForm.cxx b/Source/CursesDialog/cmCursesMainForm.cxx index 3e254e0..8381e86 100644 --- a/Source/CursesDialog/cmCursesMainForm.cxx +++ b/Source/CursesDialog/cmCursesMainForm.cxx @@ -95,9 +95,10 @@ void cmCursesMainForm::InitializeUI() // Add a label to display when cache is empty // dummy entry widget (does not respond to input) - cmCursesCacheEntryComposite comp("EMPTY CACHE", 30, 30); - comp.Entry = cm::make_unique<cmCursesDummyWidget>(1, 1, 1, 1); - newEntries.emplace_back(std::move(comp)); + this->EmptyCacheEntry = + cm::make_unique<cmCursesCacheEntryComposite>("EMPTY CACHE", 30, 30); + this->EmptyCacheEntry->Entry = + cm::make_unique<cmCursesDummyWidget>(1, 1, 1, 1); if (count > 0) { // Create the composites. @@ -192,10 +193,9 @@ void cmCursesMainForm::RePost() // if no cache entries there should still be one dummy field this->IsEmpty = this->Fields.empty(); if (this->IsEmpty) { - const auto& front = this->Entries.front(); - this->Fields.push_back(front.Label->Field); - this->Fields.push_back(front.IsNewLabel->Field); - this->Fields.push_back(front.Entry->Field); + this->Fields.push_back(this->EmptyCacheEntry->Label->Field); + this->Fields.push_back(this->EmptyCacheEntry->IsNewLabel->Field); + this->Fields.push_back(this->EmptyCacheEntry->Entry->Field); this->NumberOfVisibleEntries = 1; } // Has to be null terminated. diff --git a/Source/CursesDialog/cmCursesMainForm.h b/Source/CursesDialog/cmCursesMainForm.h index fb44a45..112b7e8 100644 --- a/Source/CursesDialog/cmCursesMainForm.h +++ b/Source/CursesDialog/cmCursesMainForm.h @@ -162,6 +162,7 @@ protected: // Number of pages displayed int NumberOfPages = 0; bool IsEmpty = false; + std::unique_ptr<cmCursesCacheEntryComposite> EmptyCacheEntry; int InitialWidth; std::unique_ptr<cmake> CMakeInstance; |