| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
| |
Cord::EstimatedMemoryUsage(). This mode avoids double-counting blocks that a Cord references more than once; otherwise it is similar to the existing kTotal mode.
There's no change to the existing kTotal or kFairShare accounting modes.
PiperOrigin-RevId: 544378591
Change-Id: I7b4ae55cd93d631194e59a9cd0ff07f47611219e
|
|
|
|
|
| |
PiperOrigin-RevId: 539900072
Change-Id: I675386e3184f6f5ab70b851add970c91d1dde9c5
|
|
|
|
|
| |
PiperOrigin-RevId: 539784770
Change-Id: Ie224afa04af023bbddc89b967e8c8440f9e8a887
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a conservative change, in that it only contains bugfixes and allows new patterns that used to be compile errors. There are other changes we would like to make (as reflected in the comments in char_formatting_test.cc), but we are being careful about the implications of such behavior changes.
The two implementation changes are:
* Apply integral promotions to enums before printing them, so they are always treated as integers (and not chars) by StrCat and StrFormat.
* Classify `unsigned char` and `signed char` as integer-like rather than char-like, so that `StrFormat("%v", v)` accepts those types as integers (consistent with `StrCat()`.)
The behavior changes are:
* StrCat() now accepts char-backed enums (rather than failing to compile).
* StrFormat("%v") now accepts `signed char` and `unsigned char` as integral (rather than failing to compile).
* StrFormat("%v") now correctly formats 8-bit enums as integers (rather than failing internally and emitting nothing).
Tested:
Modified the char_formatting_test.cc case to reflect changes.
Re-ran all other tests.
PiperOrigin-RevId: 539659674
Change-Id: Ief56335f5a57e4582af396d00eaa9e7b6be4ddc6
|
|
|
|
|
|
|
| |
Introduce kHighRefcountMask which masks off flags and the LSb of the refcount value. In the cases where this mask is used, we don't need to check the LSb because we can assume the refcount is 1 when the rest of the masked RefcountAndFlags is empty, and the LSb doesn't matter if the masked value is not empty (either it's immortal or refcount > 1). This saves an instruction and a cycle (and + cmp -> tst) https://godbolt.org/z/Kz69eqfhq
PiperOrigin-RevId: 539151659
Change-Id: I2ec7d72918f052c4b0938edd746af9d5b3052c7e
|
|\
| |
| |
| |
| | |
PiperOrigin-RevId: 539145188
Change-Id: Ic8dc8112f77ca720a8871de57ee389f15693ab00
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
integers.
This is a simplification but not a behavior change; we used to choose %u for unsigned ints, but %u and %d generate the same output for these types.
PiperOrigin-RevId: 539104599
Change-Id: I9d7ff561b969a6287889f95063636d6b77a4a78b
|
| |
| |
| |
| |
| |
| |
| | |
This patch makes it use `memcpy` for performance and consistency with other overloads.
PiperOrigin-RevId: 539079130
Change-Id: I5aea9dd9b8a1ce708c787df7d6c9a75ae419c484
|
|/ |
|
|
|
|
|
|
|
|
|
| |
types and char-backed enum types through StrCat(), StrFormat("%v"), and Substitute().
This test allows us to modify the behavior in this space without introducing undesired changes elsewhere.
PiperOrigin-RevId: 537981963
Change-Id: Icda91b66efcc0dc8c263011b137e130a3db2dc19
|
|
|
|
|
| |
PiperOrigin-RevId: 537400816
Change-Id: I06794a6b8b6a441e34121047024380190d42869a
|
|
|
|
|
|
|
|
|
|
|
| |
The non-RAW_ versions provide better output but weren't available when most of these tests were written.
There are just a couple spots where RAW_ is actually needed, e.g. signal handlers and malloc hooks.
Also fix a couple warnings in layout_test.cc newly surfaced because the optimizer understands CHECK_XX differently than INTERNAL_CHECK.
PiperOrigin-RevId: 534584435
Change-Id: I8d36fa809ffdaae5a3813064bd602cb8611c1613
|
|
|
|
|
|
|
|
|
|
| |
This includes an upgrade to CMake 3.26.3 and Bazel 6.2.0
This change includes support for both GCC 12 and 13 since we
were only testing GCC 11 before this change.
PiperOrigin-RevId: 534235753
Change-Id: I4183a02469b1c3425c52a31b71fcefe403315a42
|
|
|
|
|
| |
PiperOrigin-RevId: 534117706
Change-Id: Id48f1538e71d30286675eb32c9fb3e6f47774aa8
|
|
|
|
|
|
|
| |
Previous implementation used a lookup table of 200 bytes which, if not in L1 cache, could cause memory stalls and consumes 3-4 cache lines. This is suboptimal in real world scenarious. We are going to use a purely scalar version of merging 2/4/8 bytes together.
PiperOrigin-RevId: 533576619
Change-Id: Icd730d18536f7eb35979b62582f6edf86b786019
|
|\
| |
| |
| |
| | |
PiperOrigin-RevId: 532199109
Change-Id: I5a2a96b9c8b52feb0107d912b0011911fc1f0f4c
|
| |
| |
| |
| |
| | |
PiperOrigin-RevId: 532174747
Change-Id: I39dc6d5c369e8bfbdde5c826836e42f5baa69dc5
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This is a heavily modified version of
https://github.com/abseil/abseil-cpp/pull/1445,
which adds some missing test libraries to the test DLL.
Unlike #1445, this change moves several global variables out of
headers that did not need to be in headers.
For instance, cord_btree_exhaustive_validation was a global
defined/declared in cord_internal, but only used in cord_rep_btree
and its test.
cordz_handle defined a queue in its header even though it wasn't needed,
which also led to ODR problems.
The Spinlock used in CordzHandle is replaced with a Mutex. This was
originally a Mutex, but Chromium asked us to change it to a Spinlock
to avoid a static initializer. After this change, the static
initializer is no longer an issue.
#1407
PiperOrigin-RevId: 531516991
Change-Id: I0e431a193698b20ba03fac6e414c26f153f330a7
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
will just be a copy anyway. Also remove the typedef so that it is
clear from the type at the callsite that moving it isn't necessary.
Fixes #1443
PiperOrigin-RevId: 530596294
Change-Id: I58ffc370bbccc0816bca4c4f85c3bb12c7ee2eb2
|
| | |
|
|\ \
| | |
| | |
| | |
| | | |
PiperOrigin-RevId: 528547013
Change-Id: I9b57ee062ef666d6a34696778ff16a46c5ccb17d
|
|/ / |
|
|\ \
| | |
| | |
| | |
| | | |
PiperOrigin-RevId: 527066823
Change-Id: Ifa1e9a43c7490b34f9f4dbfa12d3acbed6b49777
|
|/ / |
|
|\ \
| | |
| | |
| | |
| | | |
PiperOrigin-RevId: 526675031
Change-Id: Ib84423ccea2d0183166194a0916a97a7ed32915c
|
|/ /
| |
| |
| | |
This lets us avoid having to do the addition manually.
|
| |
| |
| |
| |
| | |
PiperOrigin-RevId: 520724148
Change-Id: Ia90c4a711649e89454bc2ca0a9d0d771d56e79c0
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
escaping vs unescaping:
* Move table documenting escaping conversions to be next to the internal escaping code that implements it. Mention it from the internal _un_escaping code (which reverses it) too.
* Centralize the two arrays which map from normal chars to escaped chars (k(WebSafe)Base64Chars), and make bidirectional documentation links between them and their reverse (unescaping) maps (kUn(WebSafe)Base64).
* Remove redundant list of escaping/unescaping methods in the public escaping.cc.
PiperOrigin-RevId: 517142667
Change-Id: I627e59a196ef855e5bf61ef7f4b509920e8d7acd
|
| |
| |
| |
| |
| |
| |
| | |
methods in this file have corresponding case-insensitive ones.
PiperOrigin-RevId: 516933773
Change-Id: Iaec41afd923b10bc493ad864c0ecfe85a1fe2db8
|
| |
| |
| |
| |
| | |
PiperOrigin-RevId: 516275043
Change-Id: I906ef0d96dddf12e3738490bd26cb05753ec008c
|
| |
| |
| |
| |
| |
| |
| | |
tests assertions.
PiperOrigin-RevId: 515396682
Change-Id: I1b07d94611323569b199e1f4d03c7c49147c6bfb
|
| |
| |
| |
| | |
This shows that these are member functions that do not modify a class's data.
|
| |
| |
| |
| |
| | |
PiperOrigin-RevId: 514567673
Change-Id: I02721d424f01965a7a5e08c06487af358c853627
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
(Base64Escape, WebSafeBase64Escape, WebSafeBase64EscapeWithPadding).
Also update CalculateBase64EscapedLen() documentation (it references outdated Base64Escape API), and reference it from WebSafeBase64Escape (to match Base64Escape).
PiperOrigin-RevId: 511647760
Change-Id: I7dee18645c2a779c0762bc71da75a4684ec2493f
|
|\ \
| | |
| | |
| | |
| | | |
PiperOrigin-RevId: 511539869
Change-Id: I32d5e91537b078691988e7e6d3244c682eb8d7d2
|
|/ /
| |
| |
| | |
We no longer support C++11 as per the Google C++ support documentation: we support C++14 and up, so we can remove these workarounds.
|
| |
| |
| |
| |
| |
| | |
https://bugs.llvm.org/show_bug.cgi?id=38289 has been addressed since 2019.
We just have to check to see if the clang being used to compile with is any version before major version 9.
|
| |
| |
| |
| |
| | |
PiperOrigin-RevId: 506622658
Change-Id: I17ae2d97a6cadb7bdd8ebd0ec0dd3976568cb7e1
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
`absl::Hex` and `absl::Dec` are now stringifiable through `AbslStringify`. This means that they can be passed to logging, `absl::StrFormat`, `absl::StrCat` and `absl::Substitute`. Note that this change will break unsupported usages of `absl::AlphaNum`. `absl::AlphaNum` is not intended to be instantiated as a stack variable due to lifetime issues. Unsupported usages include:
* constructing an `absl::AlphaNum` as a local variable.
* For example, `absl::AlphaNum a = absl::Hex(...);`
* declaring an `absl::AlphaNum` as a member variable
Usage of `absl::AlphaNum` as a function parameter will continue to be supported.
PiperOrigin-RevId: 505158534
Change-Id: Idecdf0b3d137482e86b393c7480229343d68eb36
|
| |
| |
| |
| |
| | |
PiperOrigin-RevId: 504866618
Change-Id: I9519299946c693ae1bedd769a25a9cb5137f2f54
|
| |
| |
| |
| |
| |
| |
| | |
Fixes #1360
PiperOrigin-RevId: 504850733
Change-Id: Ifa1e83d0c703ed69c969a12076db474caec9d496
|
| |
| |
| |
| |
| | |
PiperOrigin-RevId: 504728034
Change-Id: Ifb338247b7484426e25a58580783a1d70d27e6fd
|
| |
| |
| |
| |
| | |
PiperOrigin-RevId: 504555535
Change-Id: Id40484e9f52c87e9d67def2735ee60481ca50526
|
| |
| |
| |
| |
| | |
PiperOrigin-RevId: 503229681
Change-Id: I72817b43c547bd142144d0887866c4e26ec09fb2
|
| |
| |
| |
| |
| |
| |
| | |
harmonize Base64Unescape and WebSafeBase64Unescape's documentation of padding.
PiperOrigin-RevId: 503178146
Change-Id: Id216044a9f6520653e2fa3a4505ff05eddf55659
|
| |
| |
| |
| |
| |
| |
| | |
Fixes #1365
PiperOrigin-RevId: 503160321
Change-Id: I210f194373c3e08a75d68298a8482be5f1f2227c
|
| |
| |
| |
| |
| |
| |
| | |
iterating over collections.
PiperOrigin-RevId: 503088193
Change-Id: Ic1f239f3b0427e0fea1643ec0ce7baff45ad647d
|
| |
| |
| |
| |
| | |
PiperOrigin-RevId: 502901875
Change-Id: I1c8c097e5c81a9e413692109ebfe0d0b24f50f2e
|
| |
| |
| |
| |
| | |
PiperOrigin-RevId: 501644407
Change-Id: Ie98d22e4983cfbd9cad2176925774d624d4702cf
|
| |
| |
| |
| |
| | |
PiperOrigin-RevId: 501074382
Change-Id: I26a59ee6452855685ffe89469c352e6384060f59
|