summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2009-07-28 14:47:02 (GMT)
committerBrad King <brad.king@kitware.com>2009-07-28 14:47:02 (GMT)
commite9d7ebb3ec751528a422108b20dc3c24fcd39530 (patch)
tree07660eabb01ffed7532d15fb915e608d8c6bb3a7 /Source
parent57057ee59550980e19d5c4535d3ec0f4734653a0 (diff)
downloadCMake-e9d7ebb3ec751528a422108b20dc3c24fcd39530.zip
CMake-e9d7ebb3ec751528a422108b20dc3c24fcd39530.tar.gz
CMake-e9d7ebb3ec751528a422108b20dc3c24fcd39530.tar.bz2
BUG: Do not double-initialize local generators
All global generator CreateLocalGenerator methods automatically initialize the local generator instances with SetGlobalGenerator. In several places we were calling SetGlobalGenerator again after receiving the return value from CreateLocalGenerator. The double-initializations leaked the resources allocated by the first call to SetGlobalGenerator. This fix removes the unnecessary calls.
Diffstat (limited to 'Source')
-rw-r--r--Source/CPack/cmCPackGenerator.cxx1
-rw-r--r--Source/CTest/cmCTestScriptHandler.cxx1
-rw-r--r--Source/CTest/cmCTestTestHandler.cxx1
-rw-r--r--Source/cmCTest.cxx1
-rw-r--r--Source/cmake.cxx5
5 files changed, 0 insertions, 9 deletions
diff --git a/Source/CPack/cmCPackGenerator.cxx b/Source/CPack/cmCPackGenerator.cxx
index a8d500c..509fdb9 100644
--- a/Source/CPack/cmCPackGenerator.cxx
+++ b/Source/CPack/cmCPackGenerator.cxx
@@ -623,7 +623,6 @@ int cmCPackGenerator::InstallProjectViaInstallCMakeProjects(
cmGlobalGenerator gg;
gg.SetCMakeInstance(&cm);
std::auto_ptr<cmLocalGenerator> lg(gg.CreateLocalGenerator());
- lg->SetGlobalGenerator(&gg);
cmMakefile *mf = lg->GetMakefile();
std::string realInstallDirectory = tempInstallDirectory;
if ( !installSubDirectory.empty() && installSubDirectory != "/" )
diff --git a/Source/CTest/cmCTestScriptHandler.cxx b/Source/CTest/cmCTestScriptHandler.cxx
index 12e7005..4ba9e68 100644
--- a/Source/CTest/cmCTestScriptHandler.cxx
+++ b/Source/CTest/cmCTestScriptHandler.cxx
@@ -335,7 +335,6 @@ void cmCTestScriptHandler::CreateCMake()
this->GlobalGenerator->SetCMakeInstance(this->CMake);
this->LocalGenerator = this->GlobalGenerator->CreateLocalGenerator();
- this->LocalGenerator->SetGlobalGenerator(this->GlobalGenerator);
this->Makefile = this->LocalGenerator->GetMakefile();
// remove all cmake commands which are not scriptable, since they can't be
diff --git a/Source/CTest/cmCTestTestHandler.cxx b/Source/CTest/cmCTestTestHandler.cxx
index da3fd5e..1e41371 100644
--- a/Source/CTest/cmCTestTestHandler.cxx
+++ b/Source/CTest/cmCTestTestHandler.cxx
@@ -1970,7 +1970,6 @@ void cmCTestTestHandler::GetListOfTests()
cmGlobalGenerator gg;
gg.SetCMakeInstance(&cm);
std::auto_ptr<cmLocalGenerator> lg(gg.CreateLocalGenerator());
- lg->SetGlobalGenerator(&gg);
cmMakefile *mf = lg->GetMakefile();
mf->AddDefinition("CTEST_CONFIGURATION_TYPE",
this->CTest->GetConfigType().c_str());
diff --git a/Source/cmCTest.cxx b/Source/cmCTest.cxx
index 5c058d4..abf47a2 100644
--- a/Source/cmCTest.cxx
+++ b/Source/cmCTest.cxx
@@ -350,7 +350,6 @@ int cmCTest::Initialize(const char* binary_dir, bool new_tag,
cmGlobalGenerator gg;
gg.SetCMakeInstance(&cm);
std::auto_ptr<cmLocalGenerator> lg(gg.CreateLocalGenerator());
- lg->SetGlobalGenerator(&gg);
cmMakefile *mf = lg->GetMakefile();
if ( !this->ReadCustomConfigurationFileTree(this->BinaryDir.c_str(), mf) )
{
diff --git a/Source/cmake.cxx b/Source/cmake.cxx
index efc8da0..649bdf8 100644
--- a/Source/cmake.cxx
+++ b/Source/cmake.cxx
@@ -500,7 +500,6 @@ void cmake::ReadListFile(const char *path)
if(path)
{
std::auto_ptr<cmLocalGenerator> lg(gg->CreateLocalGenerator());
- lg->SetGlobalGenerator(gg);
lg->GetMakefile()->SetHomeOutputDirectory
(cmSystemTools::GetCurrentWorkingDirectory().c_str());
lg->GetMakefile()->SetStartOutputDirectory
@@ -1532,7 +1531,6 @@ int cmake::ExecuteCMakeCommand(std::vector<std::string>& args)
{
cm.SetGlobalGenerator(ggd);
std::auto_ptr<cmLocalGenerator> lgd(ggd->CreateLocalGenerator());
- lgd->SetGlobalGenerator(ggd);
lgd->GetMakefile()->SetStartDirectory(startDir.c_str());
lgd->GetMakefile()->SetStartOutputDirectory(startOutDir.c_str());
lgd->GetMakefile()->MakeStartDirectoriesCurrent();
@@ -2625,7 +2623,6 @@ int cmake::CheckBuildSystem()
cmGlobalGenerator gg;
gg.SetCMakeInstance(&cm);
std::auto_ptr<cmLocalGenerator> lg(gg.CreateLocalGenerator());
- lg->SetGlobalGenerator(&gg);
cmMakefile* mf = lg->GetMakefile();
if(!mf->ReadListFile(0, this->CheckBuildSystemArgument.c_str()) ||
cmSystemTools::GetErrorOccuredFlag())
@@ -2656,7 +2653,6 @@ int cmake::CheckBuildSystem()
if(ggd.get())
{
std::auto_ptr<cmLocalGenerator> lgd(ggd->CreateLocalGenerator());
- lgd->SetGlobalGenerator(ggd.get());
lgd->ClearDependencies(mf, verbose);
}
}
@@ -2895,7 +2891,6 @@ void cmake::GenerateGraphViz(const char* fileName) const
cmGlobalGenerator ggi;
ggi.SetCMakeInstance(&cm);
std::auto_ptr<cmLocalGenerator> lg(ggi.CreateLocalGenerator());
- lg->SetGlobalGenerator(&ggi);
cmMakefile *mf = lg->GetMakefile();
std::string infile = this->GetHomeOutputDirectory();