summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
authorStephen Kelly <steveire@gmail.com>2015-05-04 20:38:37 (GMT)
committerStephen Kelly <steveire@gmail.com>2015-05-14 18:36:28 (GMT)
commit48a9e91b02090ba263cd46ef5c33ba3d2aa873ba (patch)
treee67fd8ea4cf03b01d1db6fa077d602e9de91f41d /Source
parente7f7c2e208a62c60e4a20ef115ba47a2ff7194a1 (diff)
downloadCMake-48a9e91b02090ba263cd46ef5c33ba3d2aa873ba.zip
CMake-48a9e91b02090ba263cd46ef5c33ba3d2aa873ba.tar.gz
CMake-48a9e91b02090ba263cd46ef5c33ba3d2aa873ba.tar.bz2
cmState: Add an accessor for Parent snapshot and a validity check.
Diffstat (limited to 'Source')
-rw-r--r--Source/cmState.cxx21
-rw-r--r--Source/cmState.h3
2 files changed, 24 insertions, 0 deletions
diff --git a/Source/cmState.cxx b/Source/cmState.cxx
index 67a2274..82a2939 100644
--- a/Source/cmState.cxx
+++ b/Source/cmState.cxx
@@ -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;
+}
diff --git a/Source/cmState.h b/Source/cmState.h
index d10fae3..ed58c64 100644
--- a/Source/cmState.h
+++ b/Source/cmState.h
@@ -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;