Merge topic 'fix-ctest-segfault'

b35311ca CTestSVN: Fix segfault when CTEST_UPDATE_VERSION_ONLY is enabled
This commit is contained in:
Brad King 2016-09-13 11:40:44 -04:00 committed by CMake Topic Stage
commit f51f4ee9a3
2 changed files with 10 additions and 9 deletions

View File

@ -108,13 +108,8 @@ std::string cmCTestSVN::LoadInfo(SVNInfo& svninfo)
void cmCTestSVN::NoteOldRevision()
{
// Info for root repository
this->Repositories.push_back(SVNInfo(""));
this->RootInfo = &(this->Repositories.back());
// Info for the external repositories
this->LoadExternals();
this->LoadRepositories();
// Get info for all the repositories
std::list<SVNInfo>::iterator itbeg = this->Repositories.begin();
std::list<SVNInfo>::iterator itend = this->Repositories.end();
for (; itbeg != itend; itbeg++) {
@ -134,7 +129,8 @@ void cmCTestSVN::NoteOldRevision()
void cmCTestSVN::NoteNewRevision()
{
// Get info for the external repositories
this->LoadRepositories();
std::list<SVNInfo>::iterator itbeg = this->Repositories.begin();
std::list<SVNInfo>::iterator itend = this->Repositories.end();
for (; itbeg != itend; itbeg++) {
@ -534,8 +530,13 @@ private:
}
};
void cmCTestSVN::LoadExternals()
void cmCTestSVN::LoadRepositories()
{
// Info for root repository
this->Repositories.clear();
this->Repositories.push_back(SVNInfo(""));
this->RootInfo = &(this->Repositories.back());
// Run "svn status" to get the list of external repositories
std::vector<const char*> svn_status;
svn_status.push_back("status");

View File

@ -86,7 +86,7 @@ private:
SVNInfo* RootInfo;
std::string LoadInfo(SVNInfo& svninfo);
void LoadExternals();
void LoadRepositories();
void LoadModifications() CM_OVERRIDE;
void LoadRevisions() CM_OVERRIDE;
void LoadRevisions(SVNInfo& svninfo);