[cmake-commits] hoffman committed cmake.cxx 1.317 1.318

cmake-commits at cmake.org cmake-commits at cmake.org
Fri Aug 10 11:15:21 EDT 2007


Update of /cvsroot/CMake/CMake/Source
In directory public:/mounts/ram/cvs-serv15751

Modified Files:
	cmake.cxx 
Log Message:
ENH: fix memory leak


Index: cmake.cxx
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmake.cxx,v
retrieving revision 1.317
retrieving revision 1.318
diff -u -d -r1.317 -r1.318
--- cmake.cxx	7 Aug 2007 19:41:57 -0000	1.317
+++ cmake.cxx	10 Aug 2007 15:15:19 -0000	1.318
@@ -2406,12 +2406,14 @@
     {
     genName = "Unix Makefiles";
     }
-  cmGlobalGenerator *ggd = this->CreateGlobalGenerator(genName);
-  if (ggd)
+  // this global generator is never set to the cmake object so it is never
+  // deleted, so make it an auto_ptr
+  std::auto_ptr<cmGlobalGenerator> ggd(this->CreateGlobalGenerator(genName));
+  if (ggd.get())
     {
     // Check the dependencies in case source files were removed.
     std::auto_ptr<cmLocalGenerator> lgd(ggd->CreateLocalGenerator());
-    lgd->SetGlobalGenerator(ggd);
+    lgd->SetGlobalGenerator(ggd.get());
     lgd->CheckDependencies(mf, verbose, this->ClearBuildSystem);
 
     // Check for multiple output pairs.



More information about the Cmake-commits mailing list