RFR: JDK-8277520: Implement JDK-8 default methods for IdentityHashMap [v4]

ExE Boss duke at openjdk.java.net
Sat Mar 19 19:50:25 UTC 2022


On Mon, 21 Feb 2022 23:36:19 GMT, liach <duke at openjdk.java.net> wrote:

>> Might need a CSR as now `computeIfAbsent` `computeIfPresent` `compute` `merge` would throw CME if the functions modified the map itself, and there are corresponding specification changes.
>
> liach has updated the pull request incrementally with two additional commits since the last revision:
> 
>  - merge branch 'identityhashmap-bench' of https://github.com/liachmodded/jdk into identityhashmap-default
>  - fix whitespace

src/java.base/share/classes/java/util/IdentityHashMap.java line 523:

> 521:      *          mapping was in the map
> 522:      */
> 523:     private boolean removeMapping(Object key, Object value) {

Note that `IdentityHashMap.remove(Object, Object)` needs to call this method, as the default implementation calls `Objects.equals(…)`: <https://github.com/openjdk/jdk/blob/3f923b82c31325504430b50dee262fd460004e7b/src/java.base/share/classes/java/util/Map.java#L866-L874>

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

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


More information about the core-libs-dev mailing list