[Cmake-commits] CMake branch, next, updated. v3.1.0-2088-g41b3991
Stephen Kelly
steveire at gmail.com
Sat Jan 17 10:27:07 EST 2015
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".
The branch, next has been updated
via 41b39919f8ec6c50d5a009337d340f2a088a65d9 (commit)
via 681d965df18fa55a9eaa615515015ac088ea0805 (commit)
via 4dc0c488f94a5f0c7ae04fd15b46a92c20fb03fa (commit)
from fec6f0b5b3866451c68bc9da7eda95fef58e25d6 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=41b39919f8ec6c50d5a009337d340f2a088a65d9
commit 41b39919f8ec6c50d5a009337d340f2a088a65d9
Merge: fec6f0b 681d965
Author: Stephen Kelly <steveire at gmail.com>
AuthorDate: Sat Jan 17 10:27:06 2015 -0500
Commit: CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Sat Jan 17 10:27:06 2015 -0500
Merge topic 'delete-algorithm' into next
681d965d Use the cmDeleteAll algorithm for types derived from std::map.
4dc0c488 cmDeleteAll: Generalize deletion specialization for map types.
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=681d965df18fa55a9eaa615515015ac088ea0805
commit 681d965df18fa55a9eaa615515015ac088ea0805
Author: Stephen Kelly <steveire at gmail.com>
AuthorDate: Sun Jan 4 15:06:37 2015 +0100
Commit: Stephen Kelly <steveire at gmail.com>
CommitDate: Sat Jan 17 16:22:58 2015 +0100
Use the cmDeleteAll algorithm for types derived from std::map.
diff --git a/Source/cmExportSetMap.cxx b/Source/cmExportSetMap.cxx
index 5174118..14c4458 100644
--- a/Source/cmExportSetMap.cxx
+++ b/Source/cmExportSetMap.cxx
@@ -25,12 +25,7 @@ cmExportSet* cmExportSetMap::operator[](const std::string &name)
void cmExportSetMap::clear()
{
- for(std::map<std::string, cmExportSet*>::iterator it = this->begin();
- it != this->end();
- ++ it)
- {
- delete it->second;
- }
+ cmDeleteAll(*this);
this->derived::clear();
}
diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx
index d17710e..f282bad 100644
--- a/Source/cmGlobalGenerator.cxx
+++ b/Source/cmGlobalGenerator.cxx
@@ -1510,11 +1510,7 @@ void cmGlobalGenerator::CreateGeneratorTargets()
//----------------------------------------------------------------------------
void cmGlobalGenerator::ClearGeneratorMembers()
{
- for(cmGeneratorTargetsType::iterator i = this->GeneratorTargets.begin();
- i != this->GeneratorTargets.end(); ++i)
- {
- delete i->second;
- }
+ cmDeleteAll(this->GeneratorTargets);
this->GeneratorTargets.clear();
cmDeleteAll(this->EvaluationFiles);
diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx
index 8e060c4..8d0271a 100644
--- a/Source/cmTarget.cxx
+++ b/Source/cmTarget.cxx
@@ -539,12 +539,7 @@ void cmTarget::ClearLinkMaps()
this->Internal->LinkInterfaceUsageRequirementsOnlyMap.clear();
this->Internal->LinkClosureMap.clear();
this->Internal->SourceFilesMap.clear();
- for (cmTargetLinkInformationMap::const_iterator it
- = this->LinkInformation.begin();
- it != this->LinkInformation.end(); ++it)
- {
- delete it->second;
- }
+ cmDeleteAll(this->LinkInformation);
this->LinkInformation.clear();
}
@@ -6874,10 +6869,7 @@ cmTargetLinkInformationMap
//----------------------------------------------------------------------------
cmTargetLinkInformationMap::~cmTargetLinkInformationMap()
{
- for(derived::iterator i = this->begin(); i != this->end(); ++i)
- {
- delete i->second;
- }
+ cmDeleteAll(*this);
}
//----------------------------------------------------------------------------
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=4dc0c488f94a5f0c7ae04fd15b46a92c20fb03fa
commit 4dc0c488f94a5f0c7ae04fd15b46a92c20fb03fa
Author: Stephen Kelly <steveire at gmail.com>
AuthorDate: Sun Jan 4 15:16:56 2015 +0100
Commit: Stephen Kelly <steveire at gmail.com>
CommitDate: Sat Jan 17 16:22:58 2015 +0100
cmDeleteAll: Generalize deletion specialization for map types.
Assume that a container whose value_type is a std::pair should have
its second member deleted.
diff --git a/Source/cmStandardIncludes.h b/Source/cmStandardIncludes.h
index 251a043..646300d 100644
--- a/Source/cmStandardIncludes.h
+++ b/Source/cmStandardIncludes.h
@@ -239,7 +239,20 @@ private:
namespace ContainerAlgorithms {
-template<typename Container>
+template<typename T>
+struct cmIsPair
+{
+ enum { value = false };
+};
+
+template<typename K, typename V>
+struct cmIsPair<std::pair<K, V> >
+{
+ enum { value = true };
+};
+
+template<typename Container,
+ bool valueTypeIsPair = cmIsPair<typename Container::value_type>::value>
struct DefaultDeleter
{
void operator()(typename Container::value_type value) {
@@ -247,10 +260,10 @@ struct DefaultDeleter
}
};
-template<typename K, typename V>
-struct DefaultDeleter<std::map<K, V> >
+template<typename Container>
+struct DefaultDeleter<Container, /* valueTypeIsPair = */ true>
{
- void operator()(typename std::map<K, V>::value_type value) {
+ void operator()(typename Container::value_type value) {
delete value.second;
}
};
-----------------------------------------------------------------------
Summary of changes:
Source/cmExportSetMap.cxx | 7 +------
Source/cmGlobalGenerator.cxx | 6 +-----
Source/cmStandardIncludes.h | 21 +++++++++++++++++----
Source/cmTarget.cxx | 12 ++----------
4 files changed, 21 insertions(+), 25 deletions(-)
hooks/post-receive
--
CMake
More information about the Cmake-commits
mailing list