<Sound Dev> RFR: 8271603: Unnecessary Vector usage in java.desktop [v4]

Sergey Bylokhov serb at openjdk.java.net
Fri Aug 27 18:32:28 UTC 2021


On Fri, 27 Aug 2021 17:52:19 GMT, Andrey Turbanov <github.com+741251+turbanoff at openjdk.org> wrote:

>> src/java.desktop/share/classes/javax/swing/JMenu.java line 1340:
>> 
>>> 1338:         }
>>> 1339:         MenuElement[] me = new MenuElement[elements.size()];
>>> 1340:         elements.toArray(me);
>> 
>> Implementation of the "toArray([])" is not equivalent of "copyInto([])". Maybe no-arg "return elements.toArray()" will look better. Same comment about other removed usage of copyInto
>
> Can you please elaborate?
> As I can see if size of array is exactly the same as size of vector/arraylist, implementations are similar - they just call System.arraycopy
> ![изображение](https://user-images.githubusercontent.com/741251/131168809-480c05d6-2775-4812-91f5-c73833f9a396.png)

To confirm this you need to do the same check on every usage of added toArray([]), the simpler version like "return toArray()" or return toArray(new MenuElement[elements.size()]) is simpler, no need to check something. I guess in some previouse fixes it was confirmed that the "return toArray(new MenuElement[0])" is even faster.

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

PR: https://git.openjdk.java.net/jdk/pull/4680


More information about the sound-dev mailing list