summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2005-02-18 21:19:09 (GMT)
committerBrad King <brad.king@kitware.com>2005-02-18 21:19:09 (GMT)
commitffb2c0c0e5ff92a1611dba3de3fc11ce3f3cbe63 (patch)
treef16a889c6f1cb968680d72c37e7127b5faaa7930
parent04b5d1613c6082558bb6dca4b831747399409035 (diff)
downloadCMake-ffb2c0c0e5ff92a1611dba3de3fc11ce3f3cbe63.zip
CMake-ffb2c0c0e5ff92a1611dba3de3fc11ce3f3cbe63.tar.gz
CMake-ffb2c0c0e5ff92a1611dba3de3fc11ce3f3cbe63.tar.bz2
BUG: cmSourceFile instances should delete their own custom commands when a new one is set.
-rw-r--r--Source/cmMakefile.cxx4
-rw-r--r--Source/cmSourceFile.cxx9
-rw-r--r--Source/cmSourceFile.h5
3 files changed, 11 insertions, 7 deletions
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index cd3b4de..62a1e7c 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -701,10 +701,6 @@ AddCustomCommandToOutput(const char* outputIn,
}
if(file)
{
- if (file->GetCustomCommand())
- {
- delete file->GetCustomCommand();
- }
file->SetCustomCommand(cc);
}
}
diff --git a/Source/cmSourceFile.cxx b/Source/cmSourceFile.cxx
index ed8d63f..6fac024 100644
--- a/Source/cmSourceFile.cxx
+++ b/Source/cmSourceFile.cxx
@@ -201,3 +201,12 @@ bool cmSourceFile::GetPropertyAsBool(const char* prop) const
}
return false;
}
+
+void cmSourceFile::SetCustomCommand(cmCustomCommand* cc)
+{
+ if(m_CustomCommand)
+ {
+ delete m_CustomCommand;
+ }
+ m_CustomCommand = cc;
+}
diff --git a/Source/cmSourceFile.h b/Source/cmSourceFile.h
index 7607fe2..ea78397 100644
--- a/Source/cmSourceFile.h
+++ b/Source/cmSourceFile.h
@@ -38,7 +38,7 @@ public:
}
~cmSourceFile()
{
- if (m_CustomCommand) { delete m_CustomCommand; }
+ this->SetCustomCommand(0);
}
/**
@@ -56,8 +56,7 @@ public:
const cmCustomCommand *GetCustomCommand() const
{return m_CustomCommand;}
cmCustomCommand *GetCustomCommand() {return m_CustomCommand;}
- void SetCustomCommand(cmCustomCommand *cc)
- { m_CustomCommand = cc;}
+ void SetCustomCommand(cmCustomCommand *cc);
/**
* Set the name of the file, given the directory the file should be in. IN