diff options
author | Brad King <brad.king@kitware.com> | 2016-09-13 15:40:44 (GMT) |
---|---|---|
committer | CMake Topic Stage <kwrobot@kitware.com> | 2016-09-13 15:40:44 (GMT) |
commit | f51f4ee9a34faeeb6ed22ea4e894dbac7572abc7 (patch) | |
tree | 49011fdf02bdbf1f7da7ef84ae4c63210ed80748 /Source | |
parent | 2fbd3094491fbedf3dea6b864f34dd2f85a12b57 (diff) | |
parent | b35311ca44b7e8b40cc48aaac6cefbe8ca4ddba8 (diff) | |
download | CMake-f51f4ee9a34faeeb6ed22ea4e894dbac7572abc7.zip CMake-f51f4ee9a34faeeb6ed22ea4e894dbac7572abc7.tar.gz CMake-f51f4ee9a34faeeb6ed22ea4e894dbac7572abc7.tar.bz2 |
Merge topic 'fix-ctest-segfault'
b35311ca CTestSVN: Fix segfault when CTEST_UPDATE_VERSION_ONLY is enabled
Diffstat (limited to 'Source')
-rw-r--r-- | Source/CTest/cmCTestSVN.cxx | 17 | ||||
-rw-r--r-- | Source/CTest/cmCTestSVN.h | 2 |
2 files changed, 10 insertions, 9 deletions
diff --git a/Source/CTest/cmCTestSVN.cxx b/Source/CTest/cmCTestSVN.cxx index f680612..0832820 100644 --- a/Source/CTest/cmCTestSVN.cxx +++ b/Source/CTest/cmCTestSVN.cxx @@ -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"); diff --git a/Source/CTest/cmCTestSVN.h b/Source/CTest/cmCTestSVN.h index 6f2374d..2301b10 100644 --- a/Source/CTest/cmCTestSVN.h +++ b/Source/CTest/cmCTestSVN.h @@ -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); |