mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-12-24 19:45:34 +08:00
3ffa55de60
Rope iterators sometimes contain pointers to an internal buffer inside the iterator itself. When such an iterator is copied, the copy incorrectly retains pointers to the original. This patch takes the simple approach of not copying the cached information when the internal buffer is being used, instead requiring it to be recomputed when the copied iterator is dereferenced. An alternative would be to adjust the pointers so they refer to the buffer in the copy. 2018-08-14 Jeremy Sawicki <jeremy-gcc@sawicki.us> * include/ext/rope (_Rope_iterator_base(const _Rope_iterator_base&)) (_Rope_const_iterator::operator=(const _Rope_const_iterator&)) (_Rope_iterator::operator=(const _Rope_iterator&)): Ensure copied/assigned rope iterators don't retain pointers to the iterator they were copied/assigned from. * testsuite/ext/rope/7.cc: New. From-SVN: r263534 |
||
---|---|---|
.. | ||
array_allocator | ||
bitmap_allocator | ||
codecvt | ||
concurrence_lock_error | ||
concurrence_unlock_error | ||
debug_allocator | ||
enc_filebuf | ||
ext_pointer | ||
forced_error | ||
iota | ||
is_heap | ||
is_sorted | ||
malloc_allocator | ||
mt_allocator | ||
new_allocator | ||
numeric_traits | ||
pb_ds | ||
pool_allocator | ||
profile | ||
random | ||
rope | ||
shared_ptr | ||
slist | ||
special_functions | ||
stdio_filebuf | ||
stdio_sync_filebuf | ||
throw_allocator | ||
throw_value | ||
type_traits | ||
vstring | ||
concept_checks.cc | ||
headers.cc | ||
median.cc | ||
pod_char_traits.cc |