Commit 15ad6db1 authored by Bill Hoffman's avatar Bill Hoffman
Browse files

BUG: fix crash when running ctest coverage for VTK

parent dbc4e2f1
......@@ -159,6 +159,14 @@ void CMakeStdoutCallback(const char* m, int len, void* s)
std::string* out = (std::string*)s;
out->append(m, len);
}
struct cmSetupOutputCaptureCleanup
{
~cmSetupOutputCaptureCleanup()
{
cmSystemTools::SetErrorCallback(0, 0);
cmSystemTools::SetStdoutCallback(0, 0);
}
};
//----------------------------------------------------------------------
int cmCTestBuildAndTestHandler::RunCMakeAndTest(std::string* outstring)
......@@ -167,6 +175,10 @@ int cmCTestBuildAndTestHandler::RunCMakeAndTest(std::string* outstring)
std::string cmakeOutString;
cmSystemTools::SetErrorCallback(CMakeMessageCallback, &cmakeOutString);
cmSystemTools::SetStdoutCallback(CMakeStdoutCallback, &cmakeOutString);
// make sure SetStdoutCallback and SetErrorCallback are set to null
// after this function exits so that they do not point at a destroyed
// string cmakeOutString
cmSetupOutputCaptureCleanup cleanup;
cmOStringStream out;
// if the generator and make program are not specified then it is an error
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment