From 6f3b9e8b9506b4631b70cf506152defa8f9e54e0 Mon Sep 17 00:00:00 2001 From: Shane Parris Date: Thu, 9 Aug 2018 12:51:29 -0400 Subject: cmState: Clear GlobVerificationManager state on Reset It should not persist across multiple configure rounds. Fixes: #18208 --- Source/cmGlobVerificationManager.cxx | 7 +++++++ Source/cmGlobVerificationManager.h | 3 +++ Source/cmState.cxx | 1 + 3 files changed, 11 insertions(+) diff --git a/Source/cmGlobVerificationManager.cxx b/Source/cmGlobVerificationManager.cxx index e23b6ea..189b517 100644 --- a/Source/cmGlobVerificationManager.cxx +++ b/Source/cmGlobVerificationManager.cxx @@ -170,3 +170,10 @@ void cmGlobVerificationManager::AddCacheEntry( value.Backtraces.emplace_back(variable, backtrace); } } + +void cmGlobVerificationManager::Reset() +{ + this->Cache.clear(); + this->VerifyScript.clear(); + this->VerifyStamp.clear(); +} diff --git a/Source/cmGlobVerificationManager.h b/Source/cmGlobVerificationManager.h index 4508602..cf04c97 100644 --- a/Source/cmGlobVerificationManager.h +++ b/Source/cmGlobVerificationManager.h @@ -37,6 +37,9 @@ protected: const std::string& variable, const cmListFileBacktrace& bt); + ///! Clear the glob cache for state reset. + void Reset(); + ///! Check targets should be written in generated build system. bool DoWriteVerifyTarget() const; diff --git a/Source/cmState.cxx b/Source/cmState.cxx index a57be4d..b2f6091 100644 --- a/Source/cmState.cxx +++ b/Source/cmState.cxx @@ -267,6 +267,7 @@ cmStateSnapshot cmState::Reset() { this->GlobalProperties.clear(); this->PropertyDefinitions.clear(); + this->GlobVerificationManager->Reset(); cmStateDetail::PositionType pos = this->SnapshotData.Truncate(); this->ExecutionListFiles.Truncate(); -- cgit v0.12