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

Unified Diff: third_party/WebKit/Source/wtf/HexNumber.h

Issue 2622363005: Migrate WTF::Vector::append() to ::push_back() in WTF::HexNumber (Closed)
Patch Set: remove template, rely on function overload resolution for Vector-specific methods Created 3 years, 11 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
Index: third_party/WebKit/Source/wtf/HexNumber.h
diff --git a/third_party/WebKit/Source/wtf/HexNumber.h b/third_party/WebKit/Source/wtf/HexNumber.h
index 6956430bfd413474530f8fe4fd4f764f3f09d2c4..a0ea7b5c460b6c21fd31f897ac4b8363ae9665db 100644
--- a/third_party/WebKit/Source/wtf/HexNumber.h
+++ b/third_party/WebKit/Source/wtf/HexNumber.h
@@ -24,66 +24,80 @@
namespace WTF {
-enum HexConversionMode { Lowercase, Uppercase };
-
namespace Internal {
const LChar lowerHexDigits[17] = "0123456789abcdef";
const LChar upperHexDigits[17] = "0123456789ABCDEF";
-inline const LChar* hexDigitsForMode(HexConversionMode mode) {
- return mode == Lowercase ? lowerHexDigits : upperHexDigits;
-}
} // namespace Internal
-template <typename T>
-inline void appendByteAsHex(unsigned char byte,
- T& destination,
- HexConversionMode mode = Uppercase) {
- const LChar* hexDigits = Internal::hexDigitsForMode(mode);
- destination.append(hexDigits[byte >> 4]);
- destination.append(hexDigits[byte & 0xF]);
-}
-
-template <typename T>
-inline void appendUnsignedAsHex(unsigned number,
- T& destination,
- HexConversionMode mode = Uppercase) {
- const LChar* hexDigits = Internal::hexDigitsForMode(mode);
- Vector<LChar, 8> result;
- do {
- result.prepend(hexDigits[number % 16]);
- number >>= 4;
- } while (number > 0);
-
- destination.append(result.data(), result.size());
-}
-
-// Same as appendUnsignedAsHex, but using exactly 'desiredDigits' for the
-// conversion.
-template <typename T>
-inline void appendUnsignedAsHexFixedSize(unsigned number,
+class HexNumber final {
+ STATIC_ONLY(HexNumber);
+
+ public:
+ enum HexConversionMode { Lowercase, Uppercase };
+
+ template <typename T>
+ static inline void appendByteAsHex(unsigned char byte,
+ T& destination,
+ HexConversionMode mode = Uppercase) {
+ const LChar* hexDigits = hexDigitsForMode(mode);
+ destination.append(hexDigits[byte >> 4]);
+ destination.append(hexDigits[byte & 0xF]);
+ }
+
+ static inline void appendByteAsHex(unsigned char byte,
+ Vector<LChar>& destination,
+ HexConversionMode mode = Uppercase) {
+ const LChar* hexDigits = hexDigitsForMode(mode);
+ destination.push_back(hexDigits[byte >> 4]);
+ destination.push_back(hexDigits[byte & 0xF]);
+ }
+
+ template <typename T>
+ static inline void appendUnsignedAsHex(unsigned number,
T& destination,
- unsigned desiredDigits,
HexConversionMode mode = Uppercase) {
- DCHECK(desiredDigits);
-
- const LChar* hexDigits = Internal::hexDigitsForMode(mode);
- Vector<LChar, 8> result;
- do {
- result.prepend(hexDigits[number % 16]);
- number >>= 4;
- } while (result.size() < desiredDigits);
-
- DCHECK_EQ(result.size(), desiredDigits);
- destination.append(result.data(), result.size());
-}
+ const LChar* hexDigits = hexDigitsForMode(mode);
+ Vector<LChar, 8> result;
+ do {
+ result.prepend(hexDigits[number % 16]);
+ number >>= 4;
+ } while (number > 0);
+
+ destination.append(result.data(), result.size());
+ }
+
+ // Same as appendUnsignedAsHex, but using exactly 'desiredDigits' for the
+ // conversion.
+ template <typename T>
+ static inline void appendUnsignedAsHexFixedSize(
+ unsigned number,
+ T& destination,
+ unsigned desiredDigits,
+ HexConversionMode mode = Uppercase) {
+ DCHECK(desiredDigits);
+
+ const LChar* hexDigits = hexDigitsForMode(mode);
+ Vector<LChar, 8> result;
+ do {
+ result.prepend(hexDigits[number % 16]);
+ number >>= 4;
+ } while (result.size() < desiredDigits);
+
+ DCHECK_EQ(result.size(), desiredDigits);
+ destination.append(result.data(), result.size());
+ }
+
+ private:
+ static inline const LChar* hexDigitsForMode(HexConversionMode mode) {
+ return mode == Lowercase ? Internal::lowerHexDigits
+ : Internal::upperHexDigits;
+ }
+};
} // namespace WTF
-using WTF::appendByteAsHex;
-using WTF::appendUnsignedAsHex;
-using WTF::appendUnsignedAsHexFixedSize;
-using WTF::Lowercase;
+using WTF::HexNumber;
#endif // HexNumber_h
« no previous file with comments | « third_party/WebKit/Source/platform/network/FormDataEncoder.cpp ('k') | third_party/WebKit/Source/wtf/text/WTFString.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698