فهرست منبع

Change output to be a reference and not a pointer.

This avoids having to check the pointer value at each use which
was not being done.
Bill Hoffman 11 سال پیش
والد
کامیت
7762fffa23
3فایلهای تغییر یافته به همراه23 افزوده شده و 29 حذف شده
  1. 1 1
      Source/CTest/cmCTestConfigureHandler.cxx
  2. 21 27
      Source/cmCTest.cxx
  3. 1 1
      Source/cmCTest.h

+ 1 - 1
Source/CTest/cmCTestConfigureHandler.cxx

@@ -77,7 +77,7 @@ int cmCTestConfigureHandler::ProcessHandler()
     this->StartLogFile("Configure", ofs);
     this->StartLogFile("Configure", ofs);
     cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, "Configure with command: "
     cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, "Configure with command: "
       << cCommand << std::endl);
       << cCommand << std::endl);
-    res = this->CTest->RunMakeCommand(cCommand.c_str(), &output,
+    res = this->CTest->RunMakeCommand(cCommand.c_str(), output,
       &retVal, buildDirectory.c_str(),
       &retVal, buildDirectory.c_str(),
       0, ofs);
       0, ofs);
 
 

+ 21 - 27
Source/cmCTest.cxx

@@ -1147,7 +1147,7 @@ int cmCTest::GetTestModelFromString(const char* str)
 //######################################################################
 //######################################################################
 
 
 //----------------------------------------------------------------------
 //----------------------------------------------------------------------
-int cmCTest::RunMakeCommand(const char* command, std::string* output,
+int cmCTest::RunMakeCommand(const char* command, std::string& output,
   int* retVal, const char* dir, int timeout, std::ostream& ofs)
   int* retVal, const char* dir, int timeout, std::ostream& ofs)
 {
 {
   // First generate the command and arguments
   // First generate the command and arguments
@@ -1166,11 +1166,7 @@ int cmCTest::RunMakeCommand(const char* command, std::string* output,
     }
     }
   argv.push_back(0);
   argv.push_back(0);
 
 
-  if ( output )
-    {
-    *output = "";
-    }
-
+  output = "";
   cmCTestLog(this, HANDLER_VERBOSE_OUTPUT, "Run command:");
   cmCTestLog(this, HANDLER_VERBOSE_OUTPUT, "Run command:");
   std::vector<const char*>::iterator ait;
   std::vector<const char*>::iterator ait;
   for ( ait = argv.begin(); ait != argv.end() && *ait; ++ ait )
   for ( ait = argv.begin(); ait != argv.end() && *ait; ++ ait )
@@ -1199,27 +1195,25 @@ int cmCTest::RunMakeCommand(const char* command, std::string* output,
     << "    " << std::flush);
     << "    " << std::flush);
   while(cmsysProcess_WaitForData(cp, &data, &length, 0))
   while(cmsysProcess_WaitForData(cp, &data, &length, 0))
     {
     {
-    if ( output )
+    for(int cc =0; cc < length; ++cc)
       {
       {
-      for(int cc =0; cc < length; ++cc)
+      if(data[cc] == 0)
         {
         {
-        if(data[cc] == 0)
-          {
-          data[cc] = '\n';
-          }
+        data[cc] = '\n';
         }
         }
-
-      output->append(data, length);
-      while ( output->size() > (tick * tick_len) )
+      }
+    output.append(data, length);
+    while ( output.size() > (tick * tick_len) )
+      {
+      tick ++;
+      cmCTestLog(this, HANDLER_OUTPUT, "." << std::flush);
+      if ( tick % tick_line_len == 0 && tick > 0 )
         {
         {
-        tick ++;
-        cmCTestLog(this, HANDLER_OUTPUT, "." << std::flush);
-        if ( tick % tick_line_len == 0 && tick > 0 )
-          {
-          cmCTestLog(this, HANDLER_OUTPUT, "  Size: "
-            << int((double(output->size()) / 1024.0) + 1) << "K" << std::endl
-            << "    " << std::flush);
-          }
+        cmCTestLog(this, HANDLER_OUTPUT,
+                   "  Size: "
+                   << int((double(output.size()) / 1024.0) + 1)
+                   << "K" << std::endl
+                   << "    " << std::flush);
         }
         }
       }
       }
     cmCTestLog(this, HANDLER_VERBOSE_OUTPUT, cmCTestLogWrite(data, length));
     cmCTestLog(this, HANDLER_VERBOSE_OUTPUT, cmCTestLogWrite(data, length));
@@ -1229,7 +1223,7 @@ int cmCTest::RunMakeCommand(const char* command, std::string* output,
       }
       }
     }
     }
   cmCTestLog(this, OUTPUT, " Size of output: "
   cmCTestLog(this, OUTPUT, " Size of output: "
-    << int(double(output->size()) / 1024.0) << "K" << std::endl);
+    << int(double(output.size()) / 1024.0) << "K" << std::endl);
 
 
   cmsysProcess_WaitForExit(cp, 0);
   cmsysProcess_WaitForExit(cp, 0);
 
 
@@ -1253,9 +1247,9 @@ int cmCTest::RunMakeCommand(const char* command, std::string* output,
     }
     }
   else if(result == cmsysProcess_State_Error)
   else if(result == cmsysProcess_State_Error)
     {
     {
-    *output += "\n*** ERROR executing: ";
-    *output += cmsysProcess_GetErrorString(cp);
-    *output += "\n***The build process failed.";
+    output += "\n*** ERROR executing: ";
+    output += cmsysProcess_GetErrorString(cp);
+    output += "\n***The build process failed.";
     cmCTestLog(this, ERROR_MESSAGE, "There was an error: "
     cmCTestLog(this, ERROR_MESSAGE, "There was an error: "
       << cmsysProcess_GetErrorString(cp) << std::endl);
       << cmsysProcess_GetErrorString(cp) << std::endl);
     }
     }

+ 1 - 1
Source/cmCTest.h

@@ -271,7 +271,7 @@ public:
 
 
   //! Run command specialized for make and configure. Returns process status
   //! Run command specialized for make and configure. Returns process status
   // and retVal is return value or exception.
   // and retVal is return value or exception.
-  int RunMakeCommand(const char* command, std::string* output,
+  int RunMakeCommand(const char* command, std::string& output,
     int* retVal, const char* dir, int timeout,
     int* retVal, const char* dir, int timeout,
     std::ostream& ofs);
     std::ostream& ofs);