RFR: 8295808: GrowableArray should support capacity management
Serguei Spitsyn
sspitsyn at openjdk.org
Mon Oct 24 23:28:46 UTC 2022
On Sat, 22 Oct 2022 01:38:44 GMT, Kim Barrett <kbarrett at openjdk.org> wrote:
> Please review this change to GrowableArray to support capacity management.
> Two functions are added to GrowableArray, reserve and shrink_to_fit. Also
> renamed the max_length function to capacity.
>
> Used these new functions in StringDedupTable.
>
> Testing: mach5 tier1-3
src/hotspot/share/utilities/growableArray.hpp line 544:
> 542: if (len > 0) {
> 543: new_data = static_cast<Derived*>(this)->allocate();
> 544: for (int i = 0; i < len; ++i) ::new (&new_data[i]) E(old_data[i]);
This can be a stupid question as I'm confused a little bit.
Why do we reallocate memory for data elements?
Could we just move the element pointers from the `old_data`?
Then, of course, there would be no need to deallocate the moved data elements.
-------------
PR: https://git.openjdk.org/jdk/pull/10827
More information about the hotspot-dev
mailing list