From da28f11523644cdc2138a0cde2c4c015948ff46c Mon Sep 17 00:00:00 2001 From: Stephen Kelly Date: Sun, 31 May 2015 00:18:33 +0200 Subject: [PATCH] cmState: Add CreateBaseSnapshot method. --- Source/cmState.cxx | 18 ++++++++++++++---- Source/cmState.h | 1 + Source/cmake.cxx | 2 +- 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/Source/cmState.cxx b/Source/cmState.cxx index 58885d3b9..eade817a4 100644 --- a/Source/cmState.cxx +++ b/Source/cmState.cxx @@ -659,12 +659,22 @@ void cmState::Snapshot::ComputeRelativePathTopBinary() } } +cmState::Snapshot cmState::CreateBaseSnapshot() +{ + PositionType pos = 0; + this->ParentPositions.push_back(pos); + this->Locations.resize(1); + this->OutputLocations.resize(1); + this->CurrentSourceDirectoryComponents.resize(1); + this->CurrentBinaryDirectoryComponents.resize(1); + this->RelativePathTopSource.resize(1); + this->RelativePathTopBinary.resize(1); + return cmState::Snapshot(this, pos); +} + cmState::Snapshot cmState::CreateSnapshot(Snapshot originSnapshot) { - if (!originSnapshot.IsValid()) - { - originSnapshot.State = this; - } + assert(originSnapshot.IsValid()); PositionType pos = this->ParentPositions.size(); this->ParentPositions.push_back(originSnapshot.Position); this->Locations.resize(this->Locations.size() + 1); diff --git a/Source/cmState.h b/Source/cmState.h index 77a066f9f..157bd9056 100644 --- a/Source/cmState.h +++ b/Source/cmState.h @@ -57,6 +57,7 @@ public: cmState::PositionType Position; }; + Snapshot CreateBaseSnapshot(); Snapshot CreateSnapshot(Snapshot originSnapshot); enum CacheEntryType{ BOOL=0, PATH, FILEPATH, STRING, INTERNAL,STATIC, diff --git a/Source/cmake.cxx b/Source/cmake.cxx index 23803ef78..ee5d53c09 100644 --- a/Source/cmake.cxx +++ b/Source/cmake.cxx @@ -134,7 +134,7 @@ cmake::cmake() this->Policies = new cmPolicies(); this->State = new cmState(this); - this->CurrentSnapshot = this->State->CreateSnapshot(cmState::Snapshot()); + this->CurrentSnapshot = this->State->CreateBaseSnapshot(); #ifdef __APPLE__ struct rlimit rlp;