On Fri, 27 Aug 2021 17:52:19 GMT, Andrey Turbanov 
<github.com+741251+turban...@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

Reply via email to