summaryrefslogtreecommitdiff
path: root/absl/strings
Commit message (Collapse)AuthorAge
* Lifetime checks for `absl::StrSplit()`Gravatar Abseil Team2023-06-02
| | | | | PiperOrigin-RevId: 537400816 Change-Id: I06794a6b8b6a441e34121047024380190d42869a
* Migrate most RAW_LOGs and RAW_CHECKs in tests to regular LOG and CHECK.Gravatar Andy Getzendanner2023-05-23
| | | | | | | | | | | 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
* CI: Move the GCC-latest testing to GCC 13.1 on LinuxGravatar Derek Mauro2023-05-22
| | | | | | | | | | 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
* Fix endianess in FastIntToBufferGravatar Abseil Team2023-05-22
| | | | | PiperOrigin-RevId: 534117706 Change-Id: Id48f1538e71d30286675eb32c9fb3e6f47774aa8
* Optimize absl::StrCat for integersGravatar Abseil Team2023-05-19
| | | | | | | 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
* Merge pull request #1290 from jun-sheaf:patch-1Gravatar Copybara-Service2023-05-15
|\ | | | | | | | | PiperOrigin-RevId: 532199109 Change-Id: I5a2a96b9c8b52feb0107d912b0011911fc1f0f4c
* | Merge pull request #1115 from h-vetinari:dll_targetsGravatar Copybara-Service2023-05-15
| | | | | | | | | | PiperOrigin-RevId: 532174747 Change-Id: I39dc6d5c369e8bfbdde5c826836e42f5baa69dc5
* | Fixed Windows DLL builds of test targetsGravatar Derek Mauro2023-05-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | Stop moving an absl::FunctionRef, since the class isn't movable, itGravatar Derek Mauro2023-05-09
| | | | | | | | | | | | | | | | | | | | 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
* | Fix spelling mistakesGravatar Vertexwahn2023-05-02
| |
* | Merge pull request #1438 from Vertexwahn:fix-spellingGravatar Copybara-Service2023-05-01
|\ \ | | | | | | | | | | | | PiperOrigin-RevId: 528547013 Change-Id: I9b57ee062ef666d6a34696778ff16a46c5ccb17d
| * | Fix spelling mistakesGravatar Vertexwahn2023-04-27
|/ /
* | Merge pull request #1434 from Vertexwahn:fix-spellingGravatar Copybara-Service2023-04-25
|\ \ | | | | | | | | | | | | PiperOrigin-RevId: 527066823 Change-Id: Ifa1e9a43c7490b34f9f4dbfa12d3acbed6b49777
| * | Fix some spelling mistakesGravatar Vertexwahn2023-04-24
|/ /
* | Merge pull request #1416 from AtariDreams:fillGravatar Copybara-Service2023-04-24
|\ \ | | | | | | | | | | | | PiperOrigin-RevId: 526675031 Change-Id: Ib84423ccea2d0183166194a0916a97a7ed32915c
| * | Prefer copy_n and fill_n over copy and fill where appropriate.Gravatar Rose2023-04-19
|/ / | | | | | | This lets us avoid having to do the addition manually.
* | Clarify code comment to avoid confusion.Gravatar Abseil Team2023-03-30
| | | | | | | | | | PiperOrigin-RevId: 520724148 Change-Id: Ia90c4a711649e89454bc2ca0a9d0d771d56e79c0
* | Be more consistent in the documentation and variable declarations for base64 ↵Gravatar Abseil Team2023-03-16
| | | | | | | | | | | | | | | | | | | | | | 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
* | Add StrContainsIgnoreCase() to strings/match.h; all the other case-sensitive ↵Gravatar Greg Falcon2023-03-15
| | | | | | | | | | | | | | methods in this file have corresponding case-insensitive ones. PiperOrigin-RevId: 516933773 Change-Id: Iaec41afd923b10bc493ad864c0ecfe85a1fe2db8
* | Performance improvement for absl::AsciiStrToUpper() and absl::AsciiStrToLower()Gravatar Abseil Team2023-03-13
| | | | | | | | | | PiperOrigin-RevId: 516275043 Change-Id: I906ef0d96dddf12e3738490bd26cb05753ec008c
* | Improve readability of ::testing::ElementsAre and ::testing::Le in unit ↵Gravatar Abseil Team2023-03-09
| | | | | | | | | | | | | | tests assertions. PiperOrigin-RevId: 515396682 Change-Id: I1b07d94611323569b199e1f4d03c7c49147c6bfb
* | Use const and static for member functionsGravatar Rose2023-03-07
| | | | | | | | This shows that these are member functions that do not modify a class's data.
* | Internal Code ChangeGravatar Abseil Team2023-03-06
| | | | | | | | | | PiperOrigin-RevId: 514567673 Change-Id: I02721d424f01965a7a5e08c06487af358c853627
* | Add CalculateBase64EscapeLen variations for the 3 base64 escaping methods ↵Gravatar Abseil Team2023-02-22
| | | | | | | | | | | | | | | | | | (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
* | Merge pull request #1403 from AtariDreams:c++11Gravatar Copybara-Service2023-02-22
|\ \ | | | | | | | | | | | | PiperOrigin-RevId: 511539869 Change-Id: I32d5e91537b078691988e7e6d3244c682eb8d7d2
| * | Resolve TODO: remove C++11 workaroundsGravatar Rose2023-02-22
|/ / | | | | | | 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.
* | Remove Workarounds for Old Clang BugGravatar Rose2023-02-14
| | | | | | | | | | | | 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.
* | Fix missing includes/dependenciesGravatar Derek Mauro2023-02-02
| | | | | | | | | | PiperOrigin-RevId: 506622658 Change-Id: I17ae2d97a6cadb7bdd8ebd0ec0dd3976568cb7e1
* | Adds `AbslStringify` support to `absl::Hex` and `absl::Dec`Gravatar Phoebe Liang2023-01-27
| | | | | | | | | | | | | | | | | | | | | | | | | | `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
* | Add lifetime annotations to AlphaNum.Gravatar Abseil Team2023-01-26
| | | | | | | | | | PiperOrigin-RevId: 504866618 Change-Id: I9519299946c693ae1bedd769a25a9cb5137f2f54
* | Cord does not need its str_format dependencyGravatar Derek Mauro2023-01-26
| | | | | | | | | | | | | | Fixes #1360 PiperOrigin-RevId: 504850733 Change-Id: Ifa1e83d0c703ed69c969a12076db474caec9d496
* | Make `SanitizerSafeCopy()` constexpr, and check for constant evaluationGravatar Martijn Vels2023-01-25
| | | | | | | | | | PiperOrigin-RevId: 504728034 Change-Id: Ifb338247b7484426e25a58580783a1d70d27e6fd
* | Add memory sanitizer to absl::CordGravatar Martijn Vels2023-01-25
| | | | | | | | | | PiperOrigin-RevId: 504555535 Change-Id: Id40484e9f52c87e9d67def2735ee60481ca50526
* | Add missing include and remove unused includesGravatar Derek Mauro2023-01-19
| | | | | | | | | | PiperOrigin-RevId: 503229681 Change-Id: I72817b43c547bd142144d0887866c4e26ec09fb2
* | Doc fix: state that Base64Escape does in fact produce padding. While at it, ↵Gravatar Abseil Team2023-01-19
| | | | | | | | | | | | | | harmonize Base64Unescape and WebSafeBase64Unescape's documentation of padding. PiperOrigin-RevId: 503178146 Change-Id: Id216044a9f6520653e2fa3a4505ff05eddf55659
* | Only enable cordz on Linux with thread_local supportGravatar Derek Mauro2023-01-19
| | | | | | | | | | | | | | Fixes #1365 PiperOrigin-RevId: 503160321 Change-Id: I210f194373c3e08a75d68298a8482be5f1f2227c
* | Use absl::string_view by value rather than by const reference while ↵Gravatar Abseil Team2023-01-19
| | | | | | | | | | | | | | iterating over collections. PiperOrigin-RevId: 503088193 Change-Id: Ic1f239f3b0427e0fea1643ec0ce7baff45ad647d
* | Clarify contract of AlphaNum as only a function parameter typeGravatar Tom Manshreck2023-01-18
| | | | | | | | | | PiperOrigin-RevId: 502901875 Change-Id: I1c8c097e5c81a9e413692109ebfe0d0b24f50f2e
* | Replace the tag "no_test_msvc_x64" with "no_test_lexan" in absl.Gravatar Abseil Team2023-01-12
| | | | | | | | | | PiperOrigin-RevId: 501644407 Change-Id: Ie98d22e4983cfbd9cad2176925774d624d4702cf
* | Refactor InlineData to allow for memory sanitizer changes step 2Gravatar Martijn Vels2023-01-10
| | | | | | | | | | PiperOrigin-RevId: 501074382 Change-Id: I26a59ee6452855685ffe89469c352e6384060f59
* | Replace generic 'base64 encoding' terminology with the specific RFCs they match.Gravatar Abseil Team2023-01-09
| | | | | | | | | | | | | | | | | | Remove duplicate documentation for two variants of Base64EscapeInternal(). Clarify role of base64 char array input (controls web-safe or not). PiperOrigin-RevId: 500867221 Change-Id: Ie316a7ddd60794e041c5b9b39e9ab5b66ed565a6
* | Clarify that Base64 unescaping methods expect their inputs to match ↵Gravatar Abseil Team2023-01-09
| | | | | | | | | | | | | | particular RFC specifications. PiperOrigin-RevId: 500809781 Change-Id: I34d089343321f7658db8252ad29ff1824e6dbef2
* | Refactor InlineData to allow for memory sanitizer changes step 1Gravatar Martijn Vels2023-01-09
| | | | | | | | | | PiperOrigin-RevId: 500765473 Change-Id: Iaa3f9fdee6c9f4322bc8995b0d381cf1c8cb1349
* | Use "#if GTEST_HAS_DEATH_TEST" instead of "#ifdef GTEST_HAS_DEATH_TEST"Gravatar Tom Hughes2023-01-09
| | | | | | | | | | | | | | | | This is consistent with the rest of the GTEST_HAS_DEATH usages in the code and the example in gtest-port.h. PiperOrigin-RevId: 500740093 Change-Id: I2acc158116b0e8bccc8ab45d75c8059828a4c251
* | Move description of escaping to code that does the escaping rather than the ↵Gravatar Abseil Team2023-01-05
| | | | | | | | | | | | | | | | | | CalculateBase64EscapedLenInternal helper method. Note that output padding is conditional on do_padding. PiperOrigin-RevId: 499901986 Change-Id: I8c1d28fe372b3e0e2216654db83f949caa297892
* | Replace ABSL_INTERNAL_UNREACHABLE with ABSL_UNREACHABLE()Gravatar Derek Mauro2022-12-22
| | | | | | | | | | PiperOrigin-RevId: 497197704 Change-Id: I3865a874e04f6f55a1ab374b03451535a86bc5a3
* | Remove obsolete RFC 3548 from escaping.cc's Base64UnescapeInternal. (Note ↵Gravatar Abseil Team2022-12-12
| | | | | | | | | | | | | | that the proper non-obsolete RFC 4648 is already listed in escaping.h's Base64Escape() documentation) PiperOrigin-RevId: 494821805 Change-Id: Id3bffcb968a7c865c9a6bcbf241870c3674601ba
* | Allow Cord to store chunked checksumsGravatar Derek Mauro2022-12-11
| | | | | | | | | | PiperOrigin-RevId: 494587777 Change-Id: I41504edca6fcf750d52602fa84a33bc7fe5fbb48
* | Fixes issue where AbslStringify() breaks formatting with %d for enumsGravatar Phoebe Liang2022-12-07
| | | | | | | | | | PiperOrigin-RevId: 493682437 Change-Id: I30f2ac36b998b86c24fe7513cd952b860560a66e
* | Remove possible UB from CopyRaw()Gravatar Martijn Vels2022-12-07
| | | | | | | | | | | | | | This change removes the 'create by single memcpy' CopyRaw() logic to avoid potential UB from the atomic refcount data being included in the memcpy. While we know this works on all supported platforms, it is officially UB, and we should change it to something else. This change changes the CopyRaw() method to explicitly create a (default initialized) instance, initialize `length` and `refcount`, and then memcpy the remaining contents which are trivial uint8_t and CordRep* values. PiperOrigin-RevId: 493596072 Change-Id: I46618883eb1c7c9ed9eb083f4d3e7fc501f23df5