Browse Source

Merge topic 'minor-cleanups'

c021f59c cmMakefile: Store macro list in a vector not in a map.
2d130896 cmMakefile: Fix list of macros generation.
f1969234 cmFunctionCommand: Remove ineffectual code.
1116698a cmTarget: Don't needlessly clear vectors in the destructor.
Brad King 10 years ago
parent
commit
6dc9a627b6

+ 0 - 5
Source/cmFunctionCommand.cxx

@@ -175,11 +175,6 @@ IsFunctionBlocked(const cmListFileFunction& lff, cmMakefile &mf,
     // if this is the endfunction for this function then execute
     if (!this->Depth)
       {
-      std::string name = this->Args[0];
-      name += "( ";
-      name += cmJoin(this->Args, " ");
-      name += " )";
-
       // create a new command and add it to cmake
       cmFunctionHelperCommand *f = new cmFunctionHelperCommand();
       f->Args = this->Args;

+ 1 - 0
Source/cmGetCMakePropertyCommand.cxx

@@ -39,6 +39,7 @@ bool cmGetCMakePropertyCommand
     }
   else if ( args[1] == "MACROS" )
     {
+    output.clear();
     this->Makefile->GetListOfMacros(output);
     }
   else if ( args[1] == "COMPONENTS" )

+ 1 - 9
Source/cmMacroCommand.cxx

@@ -224,15 +224,7 @@ IsFunctionBlocked(const cmListFileFunction& lff, cmMakefile &mf,
     // if this is the endmacro for this macro then execute
     if (!this->Depth)
       {
-      std::string name = this->Args[0];
-      name += "(";
-      if (!this->Args.empty())
-        {
-        name += " ";
-        name += cmJoin(this->Args, " ");
-        }
-      name += " )";
-      mf.AddMacro(this->Args[0].c_str(), name.c_str());
+      mf.AddMacro(this->Args[0].c_str());
       // create a new command and add it to cmake
       cmMacroHelperCommand *f = new cmMacroHelperCommand();
       f->Args = this->Args;

+ 6 - 16
Source/cmMakefile.cxx

@@ -143,7 +143,7 @@ cmMakefile::cmMakefile(const cmMakefile& mf): Internal(new Internals)
 
   this->LocalGenerator = mf.LocalGenerator;
   this->FunctionBlockers = mf.FunctionBlockers;
-  this->MacrosMap = mf.MacrosMap;
+  this->MacrosList = mf.MacrosList;
   this->SubDirectoryOrder = mf.SubDirectoryOrder;
   this->Properties = mf.Properties;
   this->PreOrder = mf.PreOrder;
@@ -3715,26 +3715,16 @@ cmVariableWatch *cmMakefile::GetVariableWatch() const
 }
 #endif
 
-void cmMakefile::AddMacro(const char* name, const char* signature)
+void cmMakefile::AddMacro(const char* name)
 {
-  if ( !name || !signature )
-    {
-    return;
-    }
-  this->MacrosMap[name] = signature;
+  assert(name);
+  this->MacrosList.push_back(name);
 }
 
 void cmMakefile::GetListOfMacros(std::string& macros) const
 {
-  StringStringMap::const_iterator it;
-  macros = "";
-  const char* sep = "";
-  for ( it = this->MacrosMap.begin(); it != this->MacrosMap.end(); ++it )
-    {
-    macros += sep;
-    macros += it->first;
-    sep = "";
-    }
+  assert(macros.empty());
+  macros = cmJoin(this->MacrosList, ";");
 }
 
 cmCacheManager *cmMakefile::GetCacheManager() const

+ 2 - 3
Source/cmMakefile.h

@@ -841,7 +841,7 @@ public:
    * Add a macro to the list of macros. The arguments should be name of the
    * macro and a documentation signature of it
    */
-  void AddMacro(const char* name, const char* signature);
+  void AddMacro(const char* name);
 
   ///! Add a new cmTest to the list of tests for this makefile.
   cmTest* CreateTest(const std::string& testName);
@@ -1065,8 +1065,7 @@ private:
 
   std::stack<int> LoopBlockCounter;
 
-  typedef std::map<std::string, std::string> StringStringMap;
-  StringStringMap MacrosMap;
+  std::vector<std::string> MacrosList;
 
   std::map<std::string, bool> SubDirectoryOrder;
 

+ 5 - 5
Source/cmTarget.cxx

@@ -6872,11 +6872,11 @@ cmTargetInternalPointer
 //----------------------------------------------------------------------------
 cmTargetInternalPointer::~cmTargetInternalPointer()
 {
-  deleteAndClear(this->Pointer->IncludeDirectoriesEntries);
-  deleteAndClear(this->Pointer->CompileOptionsEntries);
-  deleteAndClear(this->Pointer->CompileFeaturesEntries);
-  deleteAndClear(this->Pointer->CompileDefinitionsEntries);
-  deleteAndClear(this->Pointer->SourceEntries);
+  cmDeleteAll(this->Pointer->IncludeDirectoriesEntries);
+  cmDeleteAll(this->Pointer->CompileOptionsEntries);
+  cmDeleteAll(this->Pointer->CompileFeaturesEntries);
+  cmDeleteAll(this->Pointer->CompileDefinitionsEntries);
+  cmDeleteAll(this->Pointer->SourceEntries);
   delete this->Pointer;
 }