Browse Source

stringapi: Accept strings in cmStrCmp

Ben Boeckel 11 years ago
parent
commit
381d50c149
3 changed files with 11 additions and 6 deletions
  1. 2 2
      Source/cmQtAutoGenerators.cxx
  2. 8 3
      Source/cmStandardIncludes.h
  3. 1 1
      Source/cmTarget.cxx

+ 2 - 2
Source/cmQtAutoGenerators.cxx

@@ -660,7 +660,7 @@ void cmQtAutoGenerators::MergeUicOptions(std::vector<std::string> &opts,
         ++o;
         }
       if (std::find_if(cmArrayBegin(valueOptions), cmArrayEnd(valueOptions),
-                  cmStrCmp(o)) != cmArrayEnd(valueOptions))
+                  cmStrCmp(*it)) != cmArrayEnd(valueOptions))
         {
         assert(existingIt + 1 != opts.end());
         *(existingIt + 1) = *(it + 1);
@@ -831,7 +831,7 @@ void cmQtAutoGenerators::MergeRccOptions(std::vector<std::string> &opts,
         ++o;
         }
       if (std::find_if(cmArrayBegin(valueOptions), cmArrayEnd(valueOptions),
-                  cmStrCmp(o)) != cmArrayEnd(valueOptions))
+                  cmStrCmp(*it)) != cmArrayEnd(valueOptions))
         {
         assert(existingIt + 1 != opts.end());
         *(existingIt + 1) = *(it + 1);

+ 8 - 3
Source/cmStandardIncludes.h

@@ -449,11 +449,16 @@ bool cmHasLiteralSuffix(T str1, const char (&str2)[N])
 
 struct cmStrCmp {
   cmStrCmp(const char *test) : m_test(test) {}
-  cmStrCmp(std::string &test) : m_test(test.c_str()) {}
+  cmStrCmp(const std::string &test) : m_test(test) {}
+
+  bool operator()(const std::string& input) const
+  {
+    return m_test == input;
+  }
 
   bool operator()(const char * input) const
   {
-    return strcmp(input, m_test) == 0;
+    return strcmp(input, m_test.c_str()) == 0;
   }
 
   // For use with binary_search
@@ -463,7 +468,7 @@ struct cmStrCmp {
   }
 
 private:
-  const char * const m_test;
+  const cmStdString m_test;
 };
 
 #endif

+ 1 - 1
Source/cmTarget.cxx

@@ -1314,7 +1314,7 @@ static bool whiteListedInterfaceProperty(const std::string& prop)
   if (std::binary_search(cmArrayBegin(builtIns),
                          cmArrayEnd(builtIns),
                          prop.c_str(),
-                         cmStrCmp(prop.c_str())))
+                         cmStrCmp(prop)))
     {
     return true;
     }