cmState: Add an accessor for Parent snapshot and a validity check.

This commit is contained in:
Stephen Kelly 2015-05-04 22:38:37 +02:00
parent e7f7c2e208
commit 48a9e91b02
2 changed files with 24 additions and 0 deletions

View File

@ -522,3 +522,24 @@ void cmState::Snapshot::SetCurrentBinaryDirectory(std::string const& dir)
cmSystemTools::CollapseFullPath(
this->State->OutputLocations[this->Position]);
}
bool cmState::Snapshot::IsValid() const
{
return this->State ? true : false;
}
cmState::Snapshot cmState::Snapshot::GetParent() const
{
Snapshot snapshot;
if (!this->State)
{
return snapshot;
}
PositionType parentPos = this->State->ParentPositions[this->Position];
if (parentPos > 0)
{
snapshot = Snapshot(this->State, parentPos);
}
return snapshot;
}

View File

@ -36,6 +36,9 @@ public:
const char* GetCurrentBinaryDirectory() const;
void SetCurrentBinaryDirectory(std::string const& dir);
bool IsValid() const;
Snapshot GetParent() const;
private:
friend class cmState;
cmState* State;