On Mon, 9 Jan 2023 08:33:09 GMT, Viktor Klang <d...@openjdk.org> wrote:
>> Currently Set.copyOf allocates both a HashSet and a new empty array when the >> input collection is empty. >> >> This patch avoids allocating anything for the case where the parameter >> collection's isEmpty returns true. > > Viktor Klang has updated the pull request incrementally with two additional > commits since the last revision: > > - 8299444: java.util.Set.copyOf allocates needlessly for empty input > collections > > Modifies ImmutableCollections.listCopy: > Introduces a check for isEmpty to avoid allocation in the case of an > empty input collection. > - 8299444: java.util.Set.copyOf allocates needlessly for empty input > collections > > Modifies Map.copyOf: > Introduces a check for isEmpty to avoid allocation in the case of an empty > input Map. src/java.base/share/classes/java/util/ImmutableCollections.java line 169: > 167: @SuppressWarnings("unchecked") > 168: static <E> List<E> listCopy(Collection<? extends E> coll) { > 169: if (coll instanceof List12 || (coll instanceof ListN && ! > ((ListN<?>)coll).allowNulls)) { Maybe replace the cast with an instanceof pattern here? ------------- PR: https://git.openjdk.org/jdk/pull/11847