On Mon, 18 Jan 2021 23:42:08 GMT, Kim Barrett <kbarr...@openjdk.org> wrote:
>> Please review this change which fixes the type of the private >> Reference.discovered field. It was Reference<T>, but that's wrong because >> it can be any Reference object. >> >> I've changed it to Reference<?> and let that flow through, updating some >> other variables that were previously somewhat incorrectly typed (usually >> with an Object type parameter). The interesting change is to the >> ReferenceQueue.enqueue parameter, which is now also Reference<?>. >> >> This ultimately end up with a provably safe and correct, but uncheckable, >> cast in ReferenceQueue.enqueue. >> >> An alternative might be to use a raw type for the discovered field, but I >> think that ends up with more @SuppressWarnings of various flavors. I think >> the unbounded wildcard approach is clearer and cleaner. >> >> Note that all of the pending list handling, including the discovered field, >> could be moved into a non-public, non-generic, sealed(?) base class of >> Reference<T>. The pending list handling has nothing to do with the generic >> parameter T. >> >> Testing: >> mach5 tier1 and tier4 (tier4 is where vmTestbase_vm_gc_ref tests are run) > > Kim Barrett has updated the pull request incrementally with one additional > commit since the last revision: > > plevart improvement This looks good. ------------- Marked as reviewed by plevart (Reviewer). PR: https://git.openjdk.java.net/jdk/pull/1897