From 3c5bccf8a13418bc666798dd517b52f456bb2c80 Mon Sep 17 00:00:00 2001 From: Brad King Date: Wed, 4 Aug 2004 17:24:21 -0400 Subject: [PATCH] BUG: Fix crash when adding a custom command to a source file that cannot be created. --- Source/cmMakefile.cxx | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx index 1f6b8f25e..3e3c87bf4 100644 --- a/Source/cmMakefile.cxx +++ b/Source/cmMakefile.cxx @@ -669,13 +669,18 @@ AddCustomCommandToOutput(const char* outputIn, } // create a cmSourceFile for the output file = this->GetOrCreateSource(outName.c_str(), true); - // always mark as generated - file->SetProperty("GENERATED","1"); + if(file) + { + // always mark as generated + file->SetProperty("GENERATED","1"); + } } // always create the output and mark it generated - cmSourceFile *out = this->GetOrCreateSource(output.c_str(), true); - out->SetProperty("GENERATED","1"); + if(cmSourceFile *out = this->GetOrCreateSource(output.c_str(), true)) + { + out->SetProperty("GENERATED","1"); + } std::vector depends2(depends); if (main_dependency && main_dependency[0] != '\0') @@ -689,11 +694,14 @@ AddCustomCommandToOutput(const char* outputIn, { cc->SetComment(comment); } - if (file->GetCustomCommand()) + if(file) { - delete file->GetCustomCommand(); + if (file->GetCustomCommand()) + { + delete file->GetCustomCommand(); + } + file->SetCustomCommand(cc); } - file->SetCustomCommand(cc); } void cmMakefile::