| Index: net/tools/balsa/string_piece_utils.h
|
| diff --git a/net/tools/balsa/string_piece_utils.h b/net/tools/balsa/string_piece_utils.h
|
| index cab48fbd182fea05aa79b2bae7a562fcd93c112b..7d8a1aaaee28733cd8afe70374822a91c4e3b9f8 100644
|
| --- a/net/tools/balsa/string_piece_utils.h
|
| +++ b/net/tools/balsa/string_piece_utils.h
|
| @@ -5,9 +5,8 @@
|
| #ifndef NET_TOOLS_BALSA_STRING_PIECE_UTILS_H_
|
| #define NET_TOOLS_BALSA_STRING_PIECE_UTILS_H_
|
|
|
| -#include <ctype.h>
|
| -
|
| #include "base/strings/string_piece.h"
|
| +#include "base/strings/string_util.h"
|
|
|
| namespace net {
|
|
|
| @@ -20,7 +19,7 @@ struct StringPieceCaseCompare {
|
| size_t hash_val = 0;
|
| for (base::StringPiece::const_iterator it = sp.begin();
|
| it != sp.end(); ++it) {
|
| - hash_val = 5 * hash_val + tolower(*it);
|
| + hash_val = 5 * hash_val + base::ToLowerASCII(*it);
|
| }
|
| return hash_val;
|
| }
|
| @@ -31,7 +30,21 @@ struct StringPieceCaseCompare {
|
| size_t len2 = sp2.length();
|
| bool sp1_shorter = len1 < len2;
|
| size_t len = sp1_shorter ? len1 : len2;
|
| - int rv = _memicmp(sp1.data(), sp2.data(), len);
|
| +
|
| + int rv = 0;
|
| + for (size_t i = 0; i < len; i++) {
|
| + char sp1_lower = base::ToLowerASCII(sp1[i]);
|
| + char sp2_lower = base::ToLowerASCII(sp2[i]);
|
| + if (sp1_lower < sp2_lower) {
|
| + rv = -1;
|
| + break;
|
| + }
|
| + if (sp1_lower > sp2_lower) {
|
| + rv = 1;
|
| + break;
|
| + }
|
| + }
|
| +
|
| if (rv == 0) {
|
| return sp1_shorter;
|
| }
|
| @@ -45,7 +58,7 @@ struct StringPieceCaseHash {
|
| size_t hash_val = 0;
|
| for (base::StringPiece::const_iterator it = sp.begin();
|
| it != sp.end(); ++it) {
|
| - hash_val = 5 * hash_val + tolower(*it);
|
| + hash_val = 5 * hash_val + base::ToLowerASCII(*it);
|
| }
|
| return hash_val;
|
| }
|
| @@ -53,6 +66,7 @@ struct StringPieceCaseHash {
|
| #endif // COMPILER_MSVC
|
|
|
| struct StringPieceUtils {
|
| + // ASCII case-insensitive equality.
|
| static bool EqualIgnoreCase(const base::StringPiece& piece1,
|
| const base::StringPiece& piece2) {
|
| base::StringPiece::const_iterator p1i = piece1.begin();
|
| @@ -63,39 +77,15 @@ struct StringPieceUtils {
|
| return false;
|
| }
|
| while (p1i != piece1.end() && p2i != piece2.end()) {
|
| - if (tolower(*p1i) != tolower(*p2i))
|
| + if (base::ToLowerASCII(*p1i) != base::ToLowerASCII(*p2i))
|
| return false;
|
| ++p1i;
|
| ++p2i;
|
| }
|
| return true;
|
| }
|
| -
|
| - static void RemoveWhitespaceContext(base::StringPiece* piece1) {
|
| - base::StringPiece::const_iterator c = piece1->begin();
|
| - base::StringPiece::const_iterator e = piece1->end();
|
| - while (c != e && isspace(*c)) {
|
| - ++c;
|
| - }
|
| - if (c == e) {
|
| - *piece1 = base::StringPiece(c, e-c);
|
| - return;
|
| - }
|
| - --e;
|
| - while (c != e &&isspace(*e)) {
|
| - --e;
|
| - }
|
| - ++e;
|
| - *piece1 = base::StringPiece(c, e-c);
|
| - }
|
| -
|
| - static bool StartsWithIgnoreCase(const base::StringPiece& text,
|
| - const base::StringPiece& starts_with) {
|
| - if (text.size() < starts_with.size())
|
| - return false;
|
| - return EqualIgnoreCase(text.substr(0, starts_with.size()), starts_with);
|
| - }
|
| };
|
| +
|
| struct StringPieceCaseEqual {
|
| bool operator()(const base::StringPiece& piece1,
|
| const base::StringPiece& piece2) const {
|
| @@ -103,8 +93,6 @@ struct StringPieceCaseEqual {
|
| }
|
| };
|
|
|
| -
|
| -
|
| } // namespace net
|
|
|
| #endif // NET_TOOLS_BALSA_STRING_PIECE_UTILS_H_
|
|
|