RFR: 8293251: Use stringStream::base() instead of as_string() when applicable [v4]

Johan Sjölén duke at openjdk.org
Mon Sep 12 11:14:41 UTC 2022


On Mon, 12 Sep 2022 10:05:52 GMT, Johan Sjölén <duke at openjdk.org> wrote:

>> Hi!
>> 
>> Please review this PR swapping out stringStream::as_string() with ::base() when applicable. With this change we avoid allocating a resource managed string copy. I also attempt to document the base function, as it is not safe to use any result returned from it if you subsequently call the stringStream's methods.
>> 
>> When I've left ResourceMarks in place I've also commented which calls requires them.
>> 
>> This passes tier1, tier2 tests.
>
> Johan Sjölén has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Remove invariant tracking
>   
>   Too much depends on this invariant not being met.

I wanted to add an invariant that the stringStream is not used after ``::base()` is called, but that invariant is broken in production (in a safe manner), so it can't be added.

-------------

PR: https://git.openjdk.org/jdk/pull/10142


More information about the hotspot-dev mailing list