[Cmake-commits] [cmake-commits] king committed cmSystemTools.cxx 1.392 1.393

cmake-commits at cmake.org cmake-commits at cmake.org
Tue Apr 21 11:37:13 EDT 2009


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

Modified Files:
	cmSystemTools.cxx 
Log Message:
BUG: Avoid infinite loop at directory tree root

The system tools GetParentDirectory method no longer removes the root
path component.  This fixes cmSystemTools::FileExistsInParentDirectories
to not infinitely loop at when GetParentDirectory stops at the root.


Index: cmSystemTools.cxx
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmSystemTools.cxx,v
retrieving revision 1.392
retrieving revision 1.393
diff -C 2 -d -r1.392 -r1.393
*** cmSystemTools.cxx	21 Apr 2009 15:36:58 -0000	1.392
--- cmSystemTools.cxx	21 Apr 2009 15:37:09 -0000	1.393
***************
*** 1105,1109 ****
    std::string dir = directory;
    SystemTools::ConvertToUnixSlashes(dir);
!   while ( !dir.empty() )
      {
      std::string path = dir + "/" + file;
--- 1105,1110 ----
    std::string dir = directory;
    SystemTools::ConvertToUnixSlashes(dir);
!   std::string prevDir;
!   while(dir != prevDir)
      {
      std::string path = dir + "/" + file;
***************
*** 1116,1119 ****
--- 1117,1121 ----
        break;
        }
+     prevDir = dir;
      dir = SystemTools::GetParentDirectory(dir.c_str());
      }



More information about the Cmake-commits mailing list