RFR: 8314571: GrowableArray should move its old data and not copy it

Quan Anh Mai qamai at openjdk.org
Sun Aug 20 06:14:31 UTC 2023


On Sat, 19 Aug 2023 23:42:32 GMT, Johan Sjölen <jsjolen at openjdk.org> wrote:

>> src/hotspot/share/utilities/growableArray.hpp line 545:
>> 
>>> 543:   if (len > 0) {
>>> 544:     new_data = static_cast<Derived*>(this)->allocate();
>>> 545:     for (int i = 0; i < len; ++i) ::new (&new_data[i]) E(static_cast<E&&>(old_data[i]));
>> 
>> Why not use `std::move`? Thanks.
>
> Hi, in short: Yes, I believe that I can switch and that `std::move` is better.
> 
> In long: I can't find any mention of `std::move` not being allowed in the style guide, using it seems to be in the same spirit as other std library usage (`#include <new>` for example) and since it is just a better version of what I wrote here let's do the switch.

I believe "Rvalue references and move semantics" falls under the "Undecided Features" category.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/15344#discussion_r1299310750


More information about the hotspot-dev mailing list