Export of internal Abseil changes
-- d8ddeda8e52132b908fae89b25f117a055d78c04 by Abseil Team <absl-team@google.com>: Improve performance of ByteStringFromAscii by changing kHexValue to have -1 in invalid value slots. This way a single load can do both the validation and conversion. PiperOrigin-RevId: 284167344 -- 5037e97e2eaaac8ced9a5290949deda4b43b9ceb by Mark Barolak <mbar@google.com>: Change the underlying symbol name of Cord to absl::Cord. PiperOrigin-RevId: 284005429 -- 4ef66c72aedf135f2b4fd0ba7a73de6642decfff by Abseil Team <absl-team@google.com>: Eliminate an unnecessary load when futex is contended in Waiter::Wait() The first argument to compare_exchange_weak() is a reference and will be updated upon failure. There is no need to do an additional load on the same variable. PiperOrigin-RevId: 284002752 GitOrigin-RevId: d8ddeda8e52132b908fae89b25f117a055d78c04 Change-Id: Idac68a1901eb8c30050adc3860765b1a6fa085c7
This commit is contained in:
parent
d659fe54b3
commit
77f87009a3
5 changed files with 14 additions and 12 deletions
|
|
@ -961,7 +961,7 @@ bool Base64UnescapeInternal(const char* src, size_t slen, String* dest,
|
|||
}
|
||||
|
||||
/* clang-format off */
|
||||
constexpr char kHexValue[256] = {
|
||||
constexpr char kHexValueLenient[256] = {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
|
|
@ -977,8 +977,9 @@ constexpr char kHexValue[256] = {
|
|||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
};
|
||||
|
||||
/* clang-format on */
|
||||
|
||||
// This is a templated function so that T can be either a char*
|
||||
|
|
@ -987,8 +988,8 @@ constexpr char kHexValue[256] = {
|
|||
template <typename T>
|
||||
void HexStringToBytesInternal(const char* from, T to, ptrdiff_t num) {
|
||||
for (int i = 0; i < num; i++) {
|
||||
to[i] = (kHexValue[from[i * 2] & 0xFF] << 4) +
|
||||
(kHexValue[from[i * 2 + 1] & 0xFF]);
|
||||
to[i] = (kHexValueLenient[from[i * 2] & 0xFF] << 4) +
|
||||
(kHexValueLenient[from[i * 2 + 1] & 0xFF]);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue