RFR: 8144584: Change FilterIntoCSClosure to inherit OopClosure
Stefan Johansson
stefan.johansson at oracle.com
Thu Dec 3 15:50:25 UTC 2015
Hi,
Please review this change for:
https://bugs.openjdk.java.net/browse/JDK-8144584
Webrev:
http://cr.openjdk.java.net/~sjohanss/8138888/8144584/hotspot.00/
Background:
When iterating objects with oop_iterate() there is a special case for
InstanceRefKlass, if the closure overrides
apply_to_weak_ref_discovered_field() to return true, the closure will be
applied to the discovered field, even if the normal checks prevents it.
This special treatment is needed in certain situations, but it is not
obvious if it should be done when iterating the object. Currently only
G1 closures override apply_to_weak_ref_discovered_field() and many of
them seem to do it without any reason. My initial plan [1] was to remove
all usage of this special casing but after discussions I realized it
would be easier to see the effects if doing this one closure at a time.
Summary:
FilterIntoCSClosure is yet another closure that inherits
ExtendedOopClosure, but is only used as an OopClosure. The closure is
now days only used in one place and the DirtyCardToOopClosure* member is
never initialized or used so I removed it.
Testing:
* JPRT
* RBT
Thanks,
Stefan
[1] https://bugs.openjdk.java.net/browse/JDK-8138888
More information about the hotspot-gc-dev
mailing list