Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3952)

Unified Diff: core/include/fxcrt/fx_string.h

Issue 1125703004: Fix issuse with != and == shown by fx_basic_bstring unit tests. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Tidy, avoid typedefs to improve transparency. Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | core/src/fxcrt/fx_basic_bstring.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: core/include/fxcrt/fx_string.h
diff --git a/core/include/fxcrt/fx_string.h b/core/include/fxcrt/fx_string.h
index b4d7249209c481f25fc749d95eb4749d8d01d51c..7e9b1a15f662f39b0ef6b8249345921bb1ebde2a 100644
--- a/core/include/fxcrt/fx_string.h
+++ b/core/include/fxcrt/fx_string.h
@@ -94,14 +94,17 @@ public:
CFX_ByteStringC& operator = (const CFX_ByteString& src);
- bool operator == (const CFX_ByteStringC& str) const
- {
- return str.m_Length == m_Length && FXSYS_memcmp32(str.m_Ptr, m_Ptr, m_Length) == 0;
+ bool operator== (const char* ptr) const {
+ return strlen(ptr) == m_Length &&
+ FXSYS_memcmp32(ptr, m_Ptr, m_Length) == 0;
}
-
- bool operator != (const CFX_ByteStringC& str) const
- {
- return str.m_Length != m_Length || FXSYS_memcmp32(str.m_Ptr, m_Ptr, m_Length) != 0;
+ bool operator== (const CFX_ByteStringC& other) const {
+ return other.m_Length == m_Length &&
+ FXSYS_memcmp32(other.m_Ptr, m_Ptr, m_Length) == 0;
+ }
+ bool operator!= (const char* ptr) const { return !(*this == ptr); }
+ bool operator!= (const CFX_ByteStringC& other) const {
+ return !(*this == other);
}
FX_DWORD GetID(FX_STRSIZE start_pos = 0) const;
@@ -166,6 +169,12 @@ private:
return NULL;
}
};
+inline bool operator== (const char* lhs, const CFX_ByteStringC& rhs) {
+ return rhs == lhs;
+}
+inline bool operator!= (const char* lhs, const CFX_ByteStringC& rhs) {
+ return rhs != lhs;
+}
typedef const CFX_ByteStringC& FX_BSTR;
#define FX_BSTRC(str) CFX_ByteStringC(str, sizeof str-1)
#define FXBSTR_ID(c1, c2, c3, c4) ((c1 << 24) | (c2 << 16) | (c3 << 8) | (c4))
@@ -243,36 +252,22 @@ public:
int Compare(FX_BSTR str) const;
- bool Equal(FX_BSTR str) const;
-
-
- bool EqualNoCase(FX_BSTR str) const;
-
- bool operator == (FX_LPCSTR str) const
- {
- return Equal(str);
- }
-
- bool operator == (FX_BSTR str) const
- {
- return Equal(str);
- }
+ bool Equal(const char* ptr) const;
+ bool Equal(const CFX_ByteStringC& str) const;
+ bool Equal(const CFX_ByteString& other) const;
- bool operator == (const CFX_ByteString& str) const;
+ bool EqualNoCase(FX_BSTR str) const;
- bool operator != (FX_LPCSTR str) const
- {
- return !Equal(str);
- }
+ bool operator== (const char* ptr) const { return Equal(ptr); }
+ bool operator== (const CFX_ByteStringC& str) const { return Equal(str); }
+ bool operator== (const CFX_ByteString& other) const { return Equal(other); }
- bool operator != (FX_BSTR str) const
- {
- return !Equal(str);
+ bool operator!= (const char* ptr) const { return !(*this == ptr); }
+ bool operator!= (const CFX_ByteStringC& str) const {
+ return !(*this == str);
}
-
- bool operator != (const CFX_ByteString& str) const
- {
- return !operator==(str);
+ bool operator!= (const CFX_ByteString& other) const {
+ return !(*this == other);
}
bool operator< (const CFX_ByteString& str) const
@@ -398,6 +393,19 @@ inline CFX_ByteStringC& CFX_ByteStringC::operator = (const CFX_ByteString& src)
return *this;
}
+inline bool operator== (const char* lhs, const CFX_ByteString& rhs) {
+ return rhs == lhs;
+}
+inline bool operator== (const CFX_ByteStringC& lhs, const CFX_ByteString& rhs) {
+ return rhs == lhs;
+}
+inline bool operator!= (const char* lhs, const CFX_ByteString& rhs) {
+ return rhs != lhs;
+}
+inline bool operator!= (const CFX_ByteStringC& lhs, const CFX_ByteString& rhs) {
+ return rhs != lhs;
+}
+
inline CFX_ByteString operator + (FX_BSTR str1, FX_BSTR str2)
{
return CFX_ByteString(str1, str2);
« no previous file with comments | « no previous file | core/src/fxcrt/fx_basic_bstring.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698