Print this page


Split Close
Expand all
Collapse all
          --- old/src/share/vm/code/codeCache.cpp
          +++ new/src/share/vm/code/codeCache.cpp
↓ open down ↓ 66 lines elided ↑ open up ↑
  67   67                    scopes_oop_size         * 100 / total_size,
  68   68                    scopes_data_size        * 100 / total_size,
  69   69                    scopes_pcs_size         * 100 / total_size);
  70   70    }
  71   71  
  72   72    void add(CodeBlob* cb) {
  73   73      count++;
  74   74      total_size       += cb->size();
  75   75      header_size      += cb->header_size();
  76   76      relocation_size  += cb->relocation_size();
  77      -    scopes_oop_size  += cb->oops_size();
  78   77      if (cb->is_nmethod()) {
  79      -      nmethod *nm = (nmethod*)cb;
       78 +      nmethod* nm = cb->as_nmethod_or_null();
  80   79        code_size        += nm->code_size();
  81   80        stub_size        += nm->stub_size();
  82   81  
       82 +      scopes_oop_size  += nm->oops_size();
  83   83        scopes_data_size += nm->scopes_data_size();
  84   84        scopes_pcs_size  += nm->scopes_pcs_size();
  85   85      } else {
  86   86        code_size        += cb->instructions_size();
  87   87      }
  88   88    }
  89   89  };
  90   90  
  91   91  
  92   92  // CodeCache implementation
↓ open down ↓ 391 lines elided ↑ open up ↑
 484  484  
 485  485  void CodeCache::gc_epilogue() {
 486  486    assert_locked_or_safepoint(CodeCache_lock);
 487  487    FOR_ALL_ALIVE_BLOBS(cb) {
 488  488      if (cb->is_nmethod()) {
 489  489        nmethod *nm = (nmethod*)cb;
 490  490        assert(!nm->is_unloaded(), "Tautology");
 491  491        if (needs_cache_clean()) {
 492  492          nm->cleanup_inline_caches();
 493  493        }
 494      -      debug_only(nm->verify();)
      494 +      DEBUG_ONLY(nm->verify());
      495 +      nm->fix_oop_relocations();
 495  496      }
 496      -    cb->fix_oop_relocations();
 497  497    }
 498  498    set_needs_cache_clean(false);
 499  499    prune_scavenge_root_nmethods();
 500  500    assert(!nmethod::oops_do_marking_is_active(), "oops_do_marking_prologue must be called");
 501  501  }
 502  502  
 503  503  
 504  504  address CodeCache::first_address() {
 505  505    assert_locked_or_safepoint(CodeCache_lock);
 506  506    return (address)_heap->begin();
↓ open down ↓ 377 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX