Forráskód Böngészése

cmState: Add CreateBaseSnapshot method.

Stephen Kelly 10 éve
szülő
commit
da28f11523
3 módosított fájl, 16 hozzáadás és 5 törlés
  1. 14 4
      Source/cmState.cxx
  2. 1 0
      Source/cmState.h
  3. 1 1
      Source/cmake.cxx

+ 14 - 4
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);

+ 1 - 0
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,

+ 1 - 1
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;