summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
Diffstat (limited to 'Source')
-rw-r--r--Source/cmState.cxx22
-rw-r--r--Source/cmState.h1
2 files changed, 23 insertions, 0 deletions
diff --git a/Source/cmState.cxx b/Source/cmState.cxx
index ef55e09..5ca1cce 100644
--- a/Source/cmState.cxx
+++ b/Source/cmState.cxx
@@ -854,6 +854,28 @@ cmState::Snapshot cmState::Snapshot::GetBuildsystemDirectoryParent() const
return snapshot;
}
+cmState::Snapshot cmState::Snapshot::GetCallStackParent() const
+{
+ assert(this->State);
+ assert(this->Position != this->State->SnapshotData.Root());
+
+ Snapshot snapshot;
+ if (this->Position->SnapshotType == cmState::BuildsystemDirectoryType)
+ {
+ return snapshot;
+ }
+
+ PositionType parentPos = this->Position;
+ ++parentPos;
+ if (parentPos == this->State->SnapshotData.Root())
+ {
+ return snapshot;
+ }
+
+ snapshot = Snapshot(this->State, parentPos);
+ return snapshot;
+}
+
cmState* cmState::Snapshot::GetState() const
{
return this->State;
diff --git a/Source/cmState.h b/Source/cmState.h
index 9a1f764..e35b843 100644
--- a/Source/cmState.h
+++ b/Source/cmState.h
@@ -59,6 +59,7 @@ public:
bool IsValid() const;
Snapshot GetBuildsystemDirectoryParent() const;
+ Snapshot GetCallStackParent() const;
cmState* GetState() const;