RFR: 8237363: Remove automatic is in heap verification in OopIterateClosure

Per Liden per.liden at oracle.com
Wed Jan 22 09:57:25 UTC 2020


Looks good to me.

/Per

On 1/17/20 2:31 PM, Stefan Karlsson wrote:
> Hi all,
> 
> Please review this patch to remove the automatic "is in heap" 
> verification from OopIterateClosure.
> 
> https://cr.openjdk.java.net/~stefank/8237363/webrev.01/
> https://bugs.openjdk.java.net/browse/JDK-8237363
> 
> OopIterateClosure provides some automatic verification that loaded 
> objects are inside the heap. Closures can opt out from this by 
> overriding should_verify_oops().
> 
> I propose that we move this verification, and the way to turn it off, 
> and instead let the implementations of the closures decide the kind of 
> verification that is appropriate. I want to do this to de-clutter the 
> closure APIs a bit.
> 
> I've gone through all OopIterateClosures that don't override 
> should_verify_oops() and added calls to 
> assert_oop_field_points_to_object_in_heap[_or_null] where the closures 
> didn't have equivalent checks.
> 
> A lot of the places didn't explicitly check that the object is within 
> the heap but they would check for other things like:
> - Is the corresponding bit index within the range
> - Is the heap region index within range
> - Is the object in the reserved heap range (weaker than is_in)
> 
> I've added asserts to those places. If you think I should remove some of 
> them, please let me now.
> 
> Tested with tier1-3
> 
> Thanks,
> StefanK



More information about the hotspot-gc-dev mailing list