> 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 ------------- Changes: - all: https://git.openjdk.java.net/jdk/pull/1897/files - new: https://git.openjdk.java.net/jdk/pull/1897/files/80415b71..b95f5140 Webrevs: - full: https://webrevs.openjdk.java.net/?repo=jdk&pr=1897&range=02 - incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=1897&range=01-02 Stats: 23 lines in 2 files changed: 10 ins; 9 del; 4 mod Patch: https://git.openjdk.java.net/jdk/pull/1897.diff Fetch: git fetch https://git.openjdk.java.net/jdk pull/1897/head:pull/1897 PR: https://git.openjdk.java.net/jdk/pull/1897