Browse Source

BUG: Uninitialized std::string returns bad pointers from c_str() on some platforms.

Brad King 22 years ago
parent
commit
d92dcccb06
1 changed files with 2 additions and 2 deletions
  1. 2 2
      Source/cmLocalUnixMakefileGenerator.cxx

+ 2 - 2
Source/cmLocalUnixMakefileGenerator.cxx

@@ -1951,7 +1951,7 @@ void cmLocalUnixMakefileGenerator::OutputCustomRules(std::ostream& fout)
       cmCustomCommand *c = (*i)->GetCustomCommand();
       // escape spaces and convert to native slashes path for
       // the command
-      const char* comment = c->GetComment().c_str();
+      std::string comment = c->GetComment();
       std::string command = c->GetCommand();
       cmSystemTools::ReplaceString(command, "/./", "/");
       command = cmSystemTools::ConvertToOutputPath(command.c_str());
@@ -1993,7 +1993,7 @@ void cmLocalUnixMakefileGenerator::OutputCustomRules(std::ostream& fout)
       if (processedOutputs.find(c->GetOutput()) == processedOutputs.end())
         {
         this->OutputMakeRule(fout,
-                             (*comment?comment:"Custom command"),
+                             (comment.size()?comment.c_str():"Custom command"),
                              c->GetOutput().c_str(),
                              depends.c_str(),
                              command.c_str());