[Cmake-commits] CMake branch, next, updated. v3.2.2-2772-g51dc89d

Stephen Kelly steveire at gmail.com
Fri May 15 23:34:29 EDT 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  51dc89db9f08953ad0ffadb0af4ffea2a456835d (commit)
       via  e458c47acbad68e65c19faa9d5ade5a02e1a88d3 (commit)
       via  527a28dff061def2ef8918884abdf6980b0d340f (commit)
       via  bacf4c5f17523f16e7ca296213be6c2586e58a84 (commit)
      from  76f0c560fbbfa31b0868c6acedb9c32890529c69 (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=51dc89db9f08953ad0ffadb0af4ffea2a456835d
commit 51dc89db9f08953ad0ffadb0af4ffea2a456835d
Merge: 76f0c56 e458c47
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Fri May 15 23:34:28 2015 -0400
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Fri May 15 23:34:28 2015 -0400

    Merge topic 'clean-up-cmDefinitions' into next
    
    e458c47a cmDefinitions: Make the ClosureKeys method static.
    527a28df cmDefinitions: Centralize knowledge of iterator type.
    bacf4c5f cmDefinitions: Remove internal MakeClosure method.


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=e458c47acbad68e65c19faa9d5ade5a02e1a88d3
commit e458c47acbad68e65c19faa9d5ade5a02e1a88d3
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Sat May 16 05:33:30 2015 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Sat May 16 05:33:30 2015 +0200

    cmDefinitions: Make the ClosureKeys method static.
    
    For consistency with all other closure-related methods.

diff --git a/Source/cmDefinitions.cxx b/Source/cmDefinitions.cxx
index 6fcc002..e2c6876 100644
--- a/Source/cmDefinitions.cxx
+++ b/Source/cmDefinitions.cxx
@@ -105,18 +105,24 @@ cmDefinitions cmDefinitions::MakeClosure(StackConstIter begin,
 
 //----------------------------------------------------------------------------
 std::vector<std::string>
-cmDefinitions::ClosureKeys(std::set<std::string>& bound) const
+cmDefinitions::ClosureKeys(StackConstIter begin, StackConstIter end)
 {
+  std::set<std::string> bound;
   std::vector<std::string> defined;
-  defined.reserve(this->Map.size());
-  for(MapType::const_iterator mi = this->Map.begin();
-      mi != this->Map.end(); ++mi)
+
+  for (StackConstIter it = begin; it != end; ++it)
     {
-    // Use this key if it is not already set or unset.
-    if(bound.insert(mi->first).second && mi->second.Exists)
+    defined.reserve(defined.size() + it->Map.size());
+    for(MapType::const_iterator mi = it->Map.begin();
+        mi != it->Map.end(); ++mi)
       {
-      defined.push_back(mi->first);
+      // Use this key if it is not already set or unset.
+      if(bound.insert(mi->first).second && mi->second.Exists)
+        {
+        defined.push_back(mi->first);
+        }
       }
     }
+
   return defined;
 }
diff --git a/Source/cmDefinitions.h b/Source/cmDefinitions.h
index b95ae6b..80643a9 100644
--- a/Source/cmDefinitions.h
+++ b/Source/cmDefinitions.h
@@ -44,8 +44,8 @@ public:
   /** Get the set of all local keys.  */
   std::vector<std::string> LocalKeys() const;
 
-  std::vector<std::string>
-  ClosureKeys(std::set<std::string>& bound) const;
+  static std::vector<std::string> ClosureKeys(StackConstIter begin,
+                                              StackConstIter end);
 
   static cmDefinitions MakeClosure(StackConstIter begin, StackConstIter end);
 
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index 7b8d3af..9f9171c 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -94,16 +94,8 @@ public:
 
   std::vector<std::string> ClosureKeys() const
   {
-    std::vector<std::string> closureKeys;
-    std::set<std::string> bound;
-    for (std::list<cmDefinitions>::const_reverse_iterator it =
-         this->VarStack.rbegin(); it != this->VarStack.rend(); ++it)
-      {
-      std::vector<std::string> const& localKeys = it->ClosureKeys(bound);
-      closureKeys.insert(closureKeys.end(),
-                         localKeys.begin(), localKeys.end());
-      }
-    return closureKeys;
+    return cmDefinitions::ClosureKeys(this->VarStack.rbegin(),
+                                      this->VarStack.rend());
   }
 
   void PopDefinitions()

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=527a28dff061def2ef8918884abdf6980b0d340f
commit 527a28dff061def2ef8918884abdf6980b0d340f
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Sat May 16 05:33:25 2015 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Sat May 16 05:33:25 2015 +0200

    cmDefinitions: Centralize knowledge of iterator type.
    
    Currently we process a list of definitions, but that will change.

diff --git a/Source/cmDefinitions.cxx b/Source/cmDefinitions.cxx
index 581f259..6fcc002 100644
--- a/Source/cmDefinitions.cxx
+++ b/Source/cmDefinitions.cxx
@@ -18,32 +18,29 @@ cmDefinitions::Def cmDefinitions::NoDef;
 
 //----------------------------------------------------------------------------
 cmDefinitions::Def const& cmDefinitions::GetInternal(
-  const std::string& key,
-  std::list<cmDefinitions>::reverse_iterator rbegin,
-  std::list<cmDefinitions>::reverse_iterator rend)
+  const std::string& key, StackIter begin, StackIter end)
 {
-  assert(rbegin != rend);
-  MapType::const_iterator i = rbegin->Map.find(key);
-  if (i != rbegin->Map.end())
+  assert(begin != end);
+  MapType::const_iterator i = begin->Map.find(key);
+  if (i != begin->Map.end())
     {
     return i->second;
     }
-  std::list<cmDefinitions>::reverse_iterator rit = rbegin;
-  ++rit;
-  if (rit == rend)
+  StackIter it = begin;
+  ++it;
+  if (it == end)
     {
     return cmDefinitions::NoDef;
     }
-  Def const& def = cmDefinitions::GetInternal(key, rit, rend);
-  return rbegin->Map.insert(MapType::value_type(key, def)).first->second;
+  Def const& def = cmDefinitions::GetInternal(key, it, end);
+  return begin->Map.insert(MapType::value_type(key, def)).first->second;
 }
 
 //----------------------------------------------------------------------------
 const char* cmDefinitions::Get(const std::string& key,
-    std::list<cmDefinitions>::reverse_iterator rbegin,
-    std::list<cmDefinitions>::reverse_iterator rend)
+    StackIter begin, StackIter end)
 {
-  Def const& def = cmDefinitions::GetInternal(key, rbegin, rend);
+  Def const& def = cmDefinitions::GetInternal(key, begin, end);
   return def.Exists? def.c_str() : 0;
 }
 
@@ -77,14 +74,12 @@ std::vector<std::string> cmDefinitions::LocalKeys() const
 }
 
 //----------------------------------------------------------------------------
-cmDefinitions cmDefinitions::MakeClosure(
-    std::list<cmDefinitions>::const_reverse_iterator rbegin,
-    std::list<cmDefinitions>::const_reverse_iterator rend)
+cmDefinitions cmDefinitions::MakeClosure(StackConstIter begin,
+                                         StackConstIter end)
 {
   cmDefinitions closure;
   std::set<std::string> undefined;
-  for (std::list<cmDefinitions>::const_reverse_iterator it = rbegin;
-       it != rend; ++it)
+  for (StackConstIter it = begin; it != end; ++it)
     {
     // Consider local definitions.
     for(MapType::const_iterator mi = it->Map.begin();
diff --git a/Source/cmDefinitions.h b/Source/cmDefinitions.h
index e762b41..b95ae6b 100644
--- a/Source/cmDefinitions.h
+++ b/Source/cmDefinitions.h
@@ -28,12 +28,13 @@
  */
 class cmDefinitions
 {
+  typedef std::list<cmDefinitions>::reverse_iterator StackIter;
+  typedef std::list<cmDefinitions>::const_reverse_iterator StackConstIter;
 public:
   /** Get the value associated with a key; null if none.
       Store the result locally if it came from a parent.  */
   static const char* Get(const std::string& key,
-                         std::list<cmDefinitions>::reverse_iterator rbegin,
-                         std::list<cmDefinitions>::reverse_iterator rend);
+                         StackIter begin, StackIter end);
 
   /** Set (or unset if null) a value associated with a key.  */
   void Set(const std::string& key, const char* value);
@@ -46,9 +47,7 @@ public:
   std::vector<std::string>
   ClosureKeys(std::set<std::string>& bound) const;
 
-  static cmDefinitions MakeClosure(
-      std::list<cmDefinitions>::const_reverse_iterator rbegin,
-      std::list<cmDefinitions>::const_reverse_iterator rend);
+  static cmDefinitions MakeClosure(StackConstIter begin, StackConstIter end);
 
 private:
   // String with existence boolean.
@@ -74,8 +73,7 @@ private:
   MapType Map;
 
   static Def const& GetInternal(const std::string& key,
-    std::list<cmDefinitions>::reverse_iterator rbegin,
-    std::list<cmDefinitions>::reverse_iterator rend);
+    StackIter begin, StackIter end);
 };
 
 #endif

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=bacf4c5f17523f16e7ca296213be6c2586e58a84
commit bacf4c5f17523f16e7ca296213be6c2586e58a84
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Sat May 16 05:33:19 2015 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Sat May 16 05:33:19 2015 +0200

    cmDefinitions: Remove internal MakeClosure method.
    
    There is no need to have a separate method, or to pass an external
    set to it.

diff --git a/Source/cmDefinitions.cxx b/Source/cmDefinitions.cxx
index f54bc4d..581f259 100644
--- a/Source/cmDefinitions.cxx
+++ b/Source/cmDefinitions.cxx
@@ -81,18 +81,8 @@ cmDefinitions cmDefinitions::MakeClosure(
     std::list<cmDefinitions>::const_reverse_iterator rbegin,
     std::list<cmDefinitions>::const_reverse_iterator rend)
 {
-  std::set<std::string> undefined;
   cmDefinitions closure;
-  closure.MakeClosure(undefined, rbegin, rend);
-  return closure;
-}
-
-//----------------------------------------------------------------------------
-void
-cmDefinitions::MakeClosure(std::set<std::string>& undefined,
-    std::list<cmDefinitions>::const_reverse_iterator rbegin,
-    std::list<cmDefinitions>::const_reverse_iterator rend)
-{
+  std::set<std::string> undefined;
   for (std::list<cmDefinitions>::const_reverse_iterator it = rbegin;
        it != rend; ++it)
     {
@@ -101,12 +91,12 @@ cmDefinitions::MakeClosure(std::set<std::string>& undefined,
         mi != it->Map.end(); ++mi)
       {
       // Use this key if it is not already set or unset.
-      if(this->Map.find(mi->first) == this->Map.end() &&
+      if(closure.Map.find(mi->first) == closure.Map.end() &&
          undefined.find(mi->first) == undefined.end())
         {
         if(mi->second.Exists)
           {
-          this->Map.insert(*mi);
+          closure.Map.insert(*mi);
           }
         else
           {
@@ -115,6 +105,7 @@ cmDefinitions::MakeClosure(std::set<std::string>& undefined,
         }
       }
     }
+  return closure;
 }
 
 //----------------------------------------------------------------------------
diff --git a/Source/cmDefinitions.h b/Source/cmDefinitions.h
index b244793..e762b41 100644
--- a/Source/cmDefinitions.h
+++ b/Source/cmDefinitions.h
@@ -76,9 +76,6 @@ private:
   static Def const& GetInternal(const std::string& key,
     std::list<cmDefinitions>::reverse_iterator rbegin,
     std::list<cmDefinitions>::reverse_iterator rend);
-  void MakeClosure(std::set<std::string>& undefined,
-                   std::list<cmDefinitions>::const_reverse_iterator rbegin,
-                   std::list<cmDefinitions>::const_reverse_iterator rend);
 };
 
 #endif

-----------------------------------------------------------------------

Summary of changes:
 Source/cmDefinitions.cxx |   70 ++++++++++++++++++++--------------------------
 Source/cmDefinitions.h   |   19 +++++--------
 Source/cmMakefile.cxx    |   12 ++------
 3 files changed, 40 insertions(+), 61 deletions(-)


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list