RFR: 8256167: Convert JDK use of `Reference::get` to `Reference::refersTo`

Mandy Chung mchung at openjdk.java.net
Fri Dec 4 20:12:13 UTC 2020


On Fri, 4 Dec 2020 18:12:36 GMT, Kim Barrett <kbarrett at openjdk.org> wrote:

>> This patch replaces some uses of `Reference::get` to `Reference::refersTo` to avoid keeping a referent strongly reachable that could cause unnecessary delay in collecting such object.   I only made change in some but not all classes in core libraries when working with Kim on `Reference::refersTo`.    The remaining uses are left for the component owners to convert at appropriate time.
>
> src/java.base/share/classes/java/util/WeakHashMap.java line 293:
> 
>> 291:         // then checks for equality
>> 292:         Object k = e.get();
>> 293:         return key == k || key.equals(k);
> 
> I think `key == k` is already covered by refersTo. But k could be null; checking for that here might be useful, to skip the call to equals in that case.

Good point on checking k != null. A cleaner check:

        // then check for equality if the referent is not cleared
        Object k = e.get();
        return k != null || key.equals(k);

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

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


More information about the serviceability-dev mailing list