[Cmake-commits] [cmake-commits] king committed cmLocalUnixMakefileGenerator3.cxx 1.249 1.250
cmake-commits at cmake.org
cmake-commits at cmake.org
Sat May 10 18:39:02 EDT 2008
Update of /cvsroot/CMake/CMake/Source
In directory public:/mounts/ram/cvs-serv21727/Source
Modified Files:
cmLocalUnixMakefileGenerator3.cxx
Log Message:
BUG: Fix logic that loops over multiple output pairs to not loop beyond the vector when there are an odd number of entries.
Index: cmLocalUnixMakefileGenerator3.cxx
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmLocalUnixMakefileGenerator3.cxx,v
retrieving revision 1.249
retrieving revision 1.250
diff -C 2 -d -r1.249 -r1.250
*** cmLocalUnixMakefileGenerator3.cxx 8 May 2008 14:09:14 -0000 1.249
--- cmLocalUnixMakefileGenerator3.cxx 10 May 2008 22:39:00 -0000 1.250
***************
*** 1526,1551 ****
cmSystemTools::ExpandListArgument(pairs_string, pairs, true);
for(std::vector<std::string>::const_iterator i = pairs.begin();
! i != pairs.end(); ++i)
{
! const std::string& depender = *i;
! if(++i != pairs.end())
! {
! const std::string& dependee = *i;
! // If the depender is missing then delete the dependee to make
! // sure both will be regenerated.
! if(cmSystemTools::FileExists(dependee.c_str()) &&
! !cmSystemTools::FileExists(depender.c_str()))
{
! if(verbose)
! {
! cmOStringStream msg;
! msg << "Deleting primary custom command output \"" << dependee
! << "\" because another output \""
! << depender << "\" does not exist." << std::endl;
! cmSystemTools::Stdout(msg.str().c_str());
! }
! cmSystemTools::RemoveFile(dependee.c_str());
}
}
}
--- 1526,1548 ----
cmSystemTools::ExpandListArgument(pairs_string, pairs, true);
for(std::vector<std::string>::const_iterator i = pairs.begin();
! i != pairs.end() && (i+1) != pairs.end();)
{
! const std::string& depender = *i++;
! const std::string& dependee = *i++;
! // If the depender is missing then delete the dependee to make
! // sure both will be regenerated.
! if(cmSystemTools::FileExists(dependee.c_str()) &&
! !cmSystemTools::FileExists(depender.c_str()))
! {
! if(verbose)
{
! cmOStringStream msg;
! msg << "Deleting primary custom command output \"" << dependee
! << "\" because another output \""
! << depender << "\" does not exist." << std::endl;
! cmSystemTools::Stdout(msg.str().c_str());
}
+ cmSystemTools::RemoveFile(dependee.c_str());
}
}
More information about the Cmake-commits
mailing list