summaryrefslogtreecommitdiff
path: root/Source/cmCPluginAPI.cxx
diff options
context:
space:
mode:
authorAlbert Astals Cid <albert.astals.cid@kdab.com>2019-02-14 17:29:57 +0100
committerBrad King <brad.king@kitware.com>2019-02-15 07:25:47 -0500
commitae5e97a00568d15dedea073b58668e646e3c0d2e (patch)
tree10ba898956021469c0de5db595ca511c0c83cffd /Source/cmCPluginAPI.cxx
parente3353a0175fb27bc2967c3df78b8be1c0615b21d (diff)
downloadcmake-ae5e97a00568d15dedea073b58668e646e3c0d2e.tar.gz
Delete some default constructors and assignment operators
They are unused, but if someone used them they would lead to problems since they would copy the internal raw pointers and the destructor would cause double delete
Diffstat (limited to 'Source/cmCPluginAPI.cxx')
-rw-r--r--Source/cmCPluginAPI.cxx4
1 files changed, 4 insertions, 0 deletions
diff --git a/Source/cmCPluginAPI.cxx b/Source/cmCPluginAPI.cxx
index 576d2c37e1..5efc7842a8 100644
--- a/Source/cmCPluginAPI.cxx
+++ b/Source/cmCPluginAPI.cxx
@@ -491,12 +491,16 @@ public:
typedef std::map<cmSourceFile*, cmCPluginAPISourceFile*> derived;
typedef derived::iterator iterator;
typedef derived::value_type value_type;
+ cmCPluginAPISourceFileMap() = default;
~cmCPluginAPISourceFileMap()
{
for (auto const& i : *this) {
delete i.second;
}
}
+ cmCPluginAPISourceFileMap(const cmCPluginAPISourceFileMap&) = delete;
+ cmCPluginAPISourceFileMap& operator=(const cmCPluginAPISourceFileMap&) =
+ delete;
};
cmCPluginAPISourceFileMap cmCPluginAPISourceFiles;