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