Relocation (= move+destroy)
Jonathan Wakely
jwakely@redhat.com
Tue Sep 4 11:19:00 GMT 2018
On 01/09/18 17:00 +0200, Marc Glisse wrote:
>_GLIBCXX_ASAN_ANNOTATE_REINIT: I am not familiar with those
>annotations. It was convenient in one function to move this annotation
>after _Destroy, to reduce code duplication. For consistency, I did the
>same in the whole file. As far as I understand, the macro makes it ok
>to access memory between _M_finish and _M_end_of_storage, and at the
>end of the block marks again the region after the new _M_finish as
>protected. Since _Destroy should stop at _M_finish, moving the macro
>looks safe. But maybe the position of the macro was chosen to reduce
>needless checking in ASAN?
I don't remember if I had a specific reason for doing the REINIT
before _Destroy, but your change looks fine.
I'll keep reviewing the rest, but my first impression is that this is
a nice optimisation, thanks for working on it.
More information about the Libstdc++
mailing list