Duplicate :
|
Since Shenandoah switched to LRB and strong to-space invariant, it is expected to store only to-space oops. Ideally, it is enforced by LRB to ensure that only to-space oops in system. Unfortunately, there are some naked loads, e.g. Universe::null_ptr_exception_instance(), etc. that bypasses barrier. These loads can result from-space oops and subsequently be stored in roots. oop_store_not_in_heap should be able to intercept those stores and resolve them to to-space oops.
|