< prev index next >

src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.inline.hpp

Print this page
*** 150,11 ***
  //      cache, because there could be the case of embedded class/oop in the generated code,
  //      which we will never visit during mark. Without code cache invalidation, as in (a),
  //      we risk executing that code cache blob, and crashing.
  template <typename T>
  void ShenandoahSTWRootScanner::roots_do(T* oops, uint worker_id) {
!   MarkingCodeBlobClosure blobs_cl(oops, !CodeBlobToOopClosure::FixRelocations);
    CLDToOopClosure clds(oops, ClassLoaderData::_claim_strong);
    ResourceMark rm;
  
    if (_unload_classes) {
      _thread_roots.oops_do(oops, &blobs_cl, worker_id);
--- 150,11 ---
  //      cache, because there could be the case of embedded class/oop in the generated code,
  //      which we will never visit during mark. Without code cache invalidation, as in (a),
  //      we risk executing that code cache blob, and crashing.
  template <typename T>
  void ShenandoahSTWRootScanner::roots_do(T* oops, uint worker_id) {
!   MarkingCodeBlobClosure blobs_cl(oops, !CodeBlobToOopClosure::FixRelocations, true /*FIXME*/);
    CLDToOopClosure clds(oops, ClassLoaderData::_claim_strong);
    ResourceMark rm;
  
    if (_unload_classes) {
      _thread_roots.oops_do(oops, &blobs_cl, worker_id);
< prev index next >