RFR: 8144486: Change G1UpdateRSOrPushRefOopClosure to inherit OopClosure

Stefan Karlsson stefan.karlsson at oracle.com
Wed Dec 2 17:14:30 UTC 2015


Looks good.

StefanK

On 2015-12-02 17:01, Mikael Gerdin wrote:
> On 2015-12-02 16:23, Stefan Johansson wrote:
>> Hi,
>>
>> Please review this change for:
>> https://bugs.openjdk.java.net/browse/JDK-8144486
>>
>> Webrev:
>> http://cr.openjdk.java.net/~sjohanss/8138888/8144486/hotspot.00/
>
> Looks good.
> /Mikael
>
>>
>> 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:
>> This change is for G1UpdateRSOrPushRefOopClosure which is never used
>> with oop_iterate and therefore does not need to override
>> apply_to_weak_ref_discovered_field(). There is also no need to inherit
>> ExtendedOopClosure, so it's changed to inherit OopClosure instead.
>>
>> Testing:
>> * JPRT
>> * RBT
>>
>> Thanks,
>> Stefan
>>
>> [1] https://bugs.openjdk.java.net/browse/JDK-8138888
>




More information about the hotspot-gc-dev mailing list