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
| Name |
Last commit
|
Last Update |
|---|---|---|
| .. | ||
| internal | Loading commit data... | |
| BUILD.bazel | Loading commit data... | |
| CMakeLists.txt | Loading commit data... | |
| ascii.cc | Loading commit data... | |
| ascii.h | Loading commit data... | |
| ascii_benchmark.cc | Loading commit data... | |
| ascii_test.cc | Loading commit data... | |
| atod_manual_test.cc | Loading commit data... | |
| charconv.cc | Loading commit data... | |
| charconv.h | Loading commit data... | |
| charconv_benchmark.cc | Loading commit data... | |
| charconv_test.cc | Loading commit data... | |
| cord.cc | Loading commit data... | |
| cord.h | Loading commit data... | |
| cord_analysis.cc | Loading commit data... | |
| cord_analysis.h | Loading commit data... | |
| cord_buffer.cc | Loading commit data... | |
| cord_buffer.h | Loading commit data... | |
| cord_buffer_test.cc | Loading commit data... | |
| cord_ring_reader_test.cc | Loading commit data... | |
| cord_ring_test.cc | Loading commit data... | |
| cord_test.cc | Loading commit data... | |
| cord_test_helpers.h | Loading commit data... | |
| cordz_test.cc | Loading commit data... | |
| cordz_test_helpers.h | Loading commit data... | |
| escaping.cc | Loading commit data... | |
| escaping.h | Loading commit data... | |
| escaping_benchmark.cc | Loading commit data... | |
| escaping_test.cc | Loading commit data... | |
| match.cc | Loading commit data... | |
| match.h | Loading commit data... | |
| match_test.cc | Loading commit data... | |
| numbers.cc | Loading commit data... | |
| numbers.h | Loading commit data... | |
| numbers_benchmark.cc | Loading commit data... | |
| numbers_test.cc | Loading commit data... | |
| str_cat.cc | Loading commit data... | |
| str_cat.h | Loading commit data... | |
| str_cat_benchmark.cc | Loading commit data... | |
| str_cat_test.cc | Loading commit data... | |
| str_format.h | Loading commit data... | |
| str_format_test.cc | Loading commit data... | |
| str_join.h | Loading commit data... | |
| str_join_benchmark.cc | Loading commit data... | |
| str_join_test.cc | Loading commit data... | |
| str_replace.cc | Loading commit data... | |
| str_replace.h | Loading commit data... | |
| str_replace_benchmark.cc | Loading commit data... | |
| str_replace_test.cc | Loading commit data... | |
| str_split.cc | Loading commit data... | |
| str_split.h | Loading commit data... | |
| str_split_benchmark.cc | Loading commit data... | |
| str_split_test.cc | Loading commit data... | |
| string_view.cc | Loading commit data... | |
| string_view.h | Loading commit data... | |
| string_view_benchmark.cc | Loading commit data... | |
| string_view_test.cc | Loading commit data... | |
| strip.h | Loading commit data... | |
| strip_test.cc | Loading commit data... | |
| substitute.cc | Loading commit data... | |
| substitute.h | Loading commit data... | |
| substitute_test.cc | Loading commit data... |