| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
|
| |
enabled.
- Add assertions that the iterators haven't been invalidated.
- Also refactor some generation-related code to define the functions inside ABSL_BTREE_ENABLE_GENERATIONS ifdef/else branches.
PiperOrigin-RevId: 489988637
Change-Id: I34d32ed2e27cf89f7f8bb5d9c1f6770bb40b8794
|
|
|
|
|
|
|
|
|
|
|
| |
from Base64Encode.
Also:
* Clarify that padding refers to ‘output’ padding
* Make CalculateBase64EscapedLen() a bit more discoverable
* Reference all relevant non-obsolete RFCs (2045 as well as 4648)
PiperOrigin-RevId: 489981278
Change-Id: I27365ea5d52bfdb0c9d02ed96d05b4a60f2dc36f
|
|
|
|
|
| |
PiperOrigin-RevId: 489569565
Change-Id: Ia08c0c956a672ad435885c68f3e4a3de0405dad1
|
|
|
|
|
|
|
| |
This stores the operands to LOG (and CHECK) as separate fields in a serialized protobuf. The protobuf format is not yet published.
PiperOrigin-RevId: 489275799
Change-Id: I86d83671a6b1feb2bddd5bee51552907897ca8eb
|
|
|
|
|
| |
PiperOrigin-RevId: 489044912
Change-Id: I1657dd60bcfa2d0fb4b889f27f4f237325b73f08
|
|
|
|
|
|
|
|
|
|
| |
absl::make_unique is now std::make_unique in all configurations.
Documentation has been updated to recommend using the std::make_unique
spelling.
PiperOrigin-RevId: 488988005
Change-Id: Iddb8b863e6301876713d78c3fbe6660d0f9a38cf
|
|
|
|
|
| |
PiperOrigin-RevId: 488986942
Change-Id: I2babb7ea30d60c544f55ca9ed02d9aed23051a12
|
|
|
|
|
| |
PiperOrigin-RevId: 488955034
Change-Id: I143f3632b295098bc6ea5c6aedf7446dd91c668b
|
|
|
|
|
|
|
| |
This is used when demoting regular logging inside a LogSink::Send to raw-like to avoid infinite recursive dispatch.
PiperOrigin-RevId: 488934154
Change-Id: I0aaaeea0ceaaff3c4394308a7102a55befbef290
|
|
|
|
|
| |
PiperOrigin-RevId: 488930308
Change-Id: Ie620734e2f47df47e4000bc8eb2fff7f52939596
|
|
|
|
|
| |
PiperOrigin-RevId: 488799458
Change-Id: I1aaaa60c5be3260055a6f5773f78cb4043a60ac8
|
|
|
|
|
|
|
|
| |
extracted node and an iterator to the next element in the container.
Motivation: it can be useful, when calling `extract` to maintain an iterator next to the location of the extracted element. `std::set`, et al. allow for this because they have iterator stability. `absl::{flat,node}_hash_{set,map}` allow for this because they are guaranteed not to rehash when elements are removed so they also have iterator stability across calls to `extract()`. But b-tree doesn't support this use case without this API because removing elements can cause rebalancing, which invalidates iterators. We can get the next iterator without this API using `lower_bound(node_handle.value())`, but that requires an extra lookup.
PiperOrigin-RevId: 488721247
Change-Id: Id66f17311bf53678f536e4e4f070775f5ce0c542
|
|
|
|
|
| |
PiperOrigin-RevId: 488676817
Change-Id: I13f15bb93ab6dda4c56caf969be3c14f84ada6a0
|
|
|
|
|
|
|
|
|
|
|
|
| |
availability of a few timezones for "time_test" and "time_benchmark",
but (file-based) zoneinfo is now secured via existing Bazel data/env
attributes, or new CMake environment settings.
This also avoids the need for employing the CCTZ zone-info-source
extension mechanism (which is a win).
PiperOrigin-RevId: 488673952
Change-Id: I9def9d705c8f0dca3c0bcddc2406edb098ea5da3
|
|
|
|
|
|
|
| |
Also updated documentation around FormatSink and PutPaddedString
PiperOrigin-RevId: 488651398
Change-Id: Ic6c586dbb8bea61df841a142f12d22c7e5b03f43
|
|
|
|
|
| |
PiperOrigin-RevId: 488373221
Change-Id: I1e30820188cc860ce4df8fddafa04de343ec46af
|
|
|
|
|
|
|
|
|
|
|
| |
matching ${TZDIR} setting for, //absl/time/internal/cctz:zoneinfo.
This eliminates any hidden dependency on /usr/share/zoneinfo, and
enables the upcoming deletion of the embedded internal/zoneinfo.inc
data from //absl/time:test_util.
PiperOrigin-RevId: 488372848
Change-Id: If1c8525b5ca4348cb2fc3b4760819f791b6e9725
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, ~raw_hash_set() would change *this to have the same
representation as an empty hash table. This is unnecessary since
nobody should be touching a destroyed hash table, and prevents future
optimizations/changes that might not be able to preserve this
behavior.
PiperOrigin-RevId: 487899950
Change-Id: I2d4470677bdd411c2e48ef511187e39f4e7fc2f4
|
|
|
|
|
| |
PiperOrigin-RevId: 487707178
Change-Id: Ie8f57a6327a6460ab37566b8b6f56d470f6dd2dc
|
|
|
|
|
|
|
|
|
|
|
|
| |
This fixes the build on arm64 macOS.
Note that hardware acceleration is not yet enabled on arm64 when not
running under Linux.
Addresses the report from https://github.com/abseil/abseil-cpp/commit/1687dbf814eceb93de2d93f91b31acaab404091c#commitcomment-89529264
PiperOrigin-RevId: 487655295
Change-Id: I168dfc863c960d0b694b26dfcb85ff0fd0e95a1e
|
|
|
|
|
|
|
|
| |
- Add assertions that the iterators are either (a) from the same container or (b) both default constructed. Standard says: "The domain of == for forward iterators is that of iterators over the same underlying sequence. However, value-initialized iterators may be compared and shall compare equal to other value-initialized iterators of the same type." - [reference](https://eel.is/c++draft/forward.iterators#2).
- Also optimize IsEndIterator a bit.
PiperOrigin-RevId: 487617518
Change-Id: Iefba5c3bc8caa93954671793e6929e22f419c298
|
|
|
|
|
| |
PiperOrigin-RevId: 487592054
Change-Id: Iff24f6e2a304fbc85843f10417fc3343c41333da
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
deprecation of ATOMIC_FLAG_INIT.
Another option would have been to use macros to only initialize
std::atomic_flag before C++20, but I decided to use one compilation
path instead.
The major difference between std::atomic_flag and std::atomic<bool> is
that the former is guaranteed to be lock-free, but we already assume
std::atomic<bool> is lock-free in many places.
https://en.cppreference.com/w/cpp/atomic/atomic_flag
PiperOrigin-RevId: 487397075
Change-Id: I3f1c539ec8b2ca58547282e69ed73e93243e8efe
|
|
|
|
|
| |
PiperOrigin-RevId: 487394692
Change-Id: I55e9b57055483dc921e9773c3643ea9be4f9bdf6
|
|
|
|
|
|
|
|
|
| |
This implementation can advantage of hardware acceleration available
on common CPUs when using GCC and Clang. A future update may enable
this on MSVC as well.
PiperOrigin-RevId: 487327024
Change-Id: I99a8f1bcbdf25297e776537e23bd0a902e0818a1
|
|
|
|
|
|
|
| |
We check for comparisons of swisstable iterators from different heap allocations, which can indicate either iterators from different containers or that there was a rehash between when the iterators were initialized.
PiperOrigin-RevId: 487304602
Change-Id: I5c596c5ea07948d66e048f99937f9032a630344f
|
|
|
|
|
| |
PiperOrigin-RevId: 487292771
Change-Id: I2454e28fe91017fb2954a4ad194712fcafe893d2
|
|
|
|
|
| |
PiperOrigin-RevId: 486867412
Change-Id: Ib54b1acaf1ea57f8f377c87261d7d52e9a48784f
|
|
|
|
|
|
|
| |
in a couple places, plus several more that have yet to be released.
PiperOrigin-RevId: 486759835
Change-Id: Ib1b24f287f856ca38b691fbce7e747f0f5a34626
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
emplace{_hint} tests.
Note that multi{set,map}::emplace doesn't specify in which order the new element is inserted if there are equivalent keys in the table, whereas emplace_hint specifies that the new element must be before the hint if possible.
https://en.cppreference.com/w/cpp/container/multiset/emplace
https://en.cppreference.com/w/cpp/container/multiset/emplace_hint
Also refactor to rely on IsAssertEnabled instead of checking for NDEBUG.
PiperOrigin-RevId: 486733450
Change-Id: Ie90d33c584a6caccd8301ad6fc0396234dbbfac4
|
|
|
|
|
|
|
|
|
|
|
| |
In order for Condition to work on Microsoft platforms, it has to store pointers to methods that are larger than we usually expect. MSVC pointers to methods from class hierarchies that employ multiple inheritance or virtual inheritance are strictly larger than pointers to methods in class hierarchies that only employ single inheritance.
This change introduces an opaque declaration of a class, which is not fulfilled. This declaration is used to calculate the size of the Condition method pointer allocation. Because the declaration is of unspecified inheritance, the compiler is forced to use a conservatively large allocation, which will thereby accommodate all method pointer sizes.
Because the `method_` and `function_` callbacks are only populated in mutually exclusive conditions, they can be allowed to take up the same space in the Condition object. This change combines the `method_` and `function_` fields and renames the new field to `callback_`. The constructor logic is updated to reflect the new field.
PiperOrigin-RevId: 486701312
Change-Id: If06832cc26f27d91e295183e44dc29440af5f9db
|
|
|
|
|
| |
PiperOrigin-RevId: 486480813
Change-Id: I05292dd0550dfb4130bbe47eafa96ff5b58c040b
|
|
|
|
|
| |
PiperOrigin-RevId: 486227733
Change-Id: If492d715e5758971cf7bd0ccd748b47b1424a3c7
|
|
|
|
|
| |
PiperOrigin-RevId: 486023797
Change-Id: I0b82754fd40c2d6fb451f304aaf1d795eed8d009
|
|
|
|
|
| |
PiperOrigin-RevId: 485921596
Change-Id: I453801e3d7b4a60ecedf173d448c8b6f51cb0b2e
|
|\
| |
| |
| |
| | |
PiperOrigin-RevId: 485886212
Change-Id: Ic7a710913f8376d07b9bdeb987d007ec04e48465
|
|\ \
| | |
| | |
| | |
| | | |
PiperOrigin-RevId: 485885633
Change-Id: Idfaf6ce22a9421fe05ae38029c8a68b720ce50ba
|
| | |
| | |
| | |
| | |
| | | |
PiperOrigin-RevId: 485868656
Change-Id: I09d70adc570b6b79a80c29f89601186aab390032
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
If a user-defined type has `AbslStringify()` defined, it will always be used for logging over `operator<<`.
`HasAbslStringify` now uses the empty class `UnimplementedSink` for its checks instead of `StringifySink` in order to make it work in cases involving other sinks.
PiperOrigin-RevId: 485710377
Change-Id: Ibdd916151c7abc3269c35fbe79b772867f3d25e1
|
|/ / |
|
| |
| |
| |
| |
| |
| |
| | |
a macro in a third-party library.
PiperOrigin-RevId: 485653193
Change-Id: I0615ceb9ea3e1533a989470e7c9863c86b70698b
|
| |
| |
| |
| |
| | |
PiperOrigin-RevId: 485575914
Change-Id: If1752252e3cc2f91dc3c171382c9fb3a4def0377
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- Separate the failure cases into different assertions: end/default constructed vs rehashed or erased.
- Update the assertion error for AssertIsValid to not mention the end iterator case because end iterators are considered valid by AssertIsValid.
- Also fix an out-of-date comment for skip_empty_or_deleted.
PiperOrigin-RevId: 485402559
Change-Id: I593056abdc6c3565d0396fb885923fef643bf4e4
|
| |
| |
| |
| |
| |
| |
| | |
empty cord twice in a row.
PiperOrigin-RevId: 485367641
Change-Id: I6605ff25acbcef7c40b68e15a8888076a2da63be
|
| |
| |
| |
| |
| |
| |
| | |
the element being extracted).
PiperOrigin-RevId: 485120182
Change-Id: Ic54d538721678bed0a748dacbf33c319e62b93b8
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In a previous change, I forgot to fix the DLLs to
also set the target_compile_features() as needed.
Some amount of refactoring to expose the necessary
variables and functions in AbseilDll.cmake
Fixes #1116
PiperOrigin-RevId: 485101834
Change-Id: I5cd0eff9e20c0ddf48c364f917e40d66df0aac17
|
| |
| |
| |
| |
| | |
PiperOrigin-RevId: 485070787
Change-Id: Ie62021eaf84f5a43e8943d3167e98e3986fcf5a6
|
| |
| |
| |
| |
| | |
PiperOrigin-RevId: 485054062
Change-Id: Ieafa217b562548f8bb8dc6fc4e1e414f8ede0579
|
| |
| |
| |
| |
| | |
PiperOrigin-RevId: 484578104
Change-Id: Ie4be3e4de27dc28d88395e16fd075fb10ab7a302
|
| |
| |
| |
| |
| |
| |
| | |
file.
PiperOrigin-RevId: 484419458
Change-Id: Ic2c1afa1a3434ac071c01ae2e6c75dee41b1f069
|