The ClassLoaderData::remove_handle() member function currently uses explicit G1 SATB barriers to remove an oop from the root set, as these handles are not necessarily walked by the GC in a safepoint. Therefore G1 needs pre-write barriers.
This should now be modelled as a RootAccess<IN_CONCURRENT_ROOT>::oop_store instead. This maps to performing a pre-write SATB barrier with G1, but other GCs are free to do other things as necessary.
This should now be modelled as a RootAccess<IN_CONCURRENT_ROOT>::oop_store instead. This maps to performing a pre-write SATB barrier with G1, but other GCs are free to do other things as necessary.