Parcourir la source

performance inprovements

Ken Martin il y a 23 ans
Parent
commit
ca2fdeb640
2 fichiers modifiés avec 12 ajouts et 3 suppressions
  1. 11 3
      Source/cmMakefile.cxx
  2. 1 0
      Source/cmSourceFile.h

+ 11 - 3
Source/cmMakefile.cxx

@@ -1209,6 +1209,12 @@ cmMakefile::FindSourceGroup(const char* source,
 bool cmMakefile::IsFunctionBlocked(const char *name,
                                    std::vector<std::string> const&args)
 {
+  // if there are no blockers get out of here
+  if (m_FunctionBlockers.begin() == m_FunctionBlockers.end())
+    {
+    return false;
+    }
+
   // loop over all function blockers to see if any block this command
   std::set<cmFunctionBlocker *>::const_iterator pos;
   std::vector<std::string> expandedArguments = args;
@@ -1334,10 +1340,12 @@ cmSourceFile* cmMakefile::GetSource(const char* sourceName) const
   for(std::vector<cmSourceFile*>::const_iterator i = m_SourceFiles.begin();
       i != m_SourceFiles.end(); ++i)
     {
-    if((*i)->GetSourceName() == s 
-       && (ext.size() == 0 || (ext == (*i)->GetSourceExtension())))
+    if ((*i)->GetSourceNameReference() == s)
       {
-      return *i;
+      if ((ext.size() == 0 || (ext == (*i)->GetSourceExtension())))
+        {
+        return *i;
+        }
       }
     }
   return 0;

+ 1 - 0
Source/cmSourceFile.h

@@ -92,6 +92,7 @@ public:
    * (In most cases this is the name of the class.)
    */
   std::string GetSourceName() const {return m_SourceName;}
+  const std::string &GetSourceNameReference() const {return m_SourceName;}
   void SetSourceName(const char *name) {m_SourceName = name;}
 
   /**