src/share/vm/oops/klassKlass.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File 7017732 Cdiff src/share/vm/oops/klassKlass.cpp

src/share/vm/oops/klassKlass.cpp

Print this page

        

*** 39,48 **** --- 39,52 ---- #include "oops/oop.inline2.hpp" #include "oops/symbol.hpp" #include "oops/typeArrayKlass.hpp" #include "runtime/handles.inline.hpp" #ifndef SERIALGC + #include "gc_implementation/parNew/parOopClosures.inline.hpp" + #include "gc_implementation/parallelScavenge/psPromotionManager.inline.hpp" + #include "gc_implementation/parallelScavenge/psScavenge.inline.hpp" + #include "memory/cardTableRS.hpp" #include "oops/oop.pcgc.inline.hpp" #endif int klassKlass::oop_size(oop obj) const { assert (obj->is_klass(), "must be a klassOop");
*** 173,182 **** --- 177,192 ---- return size; } #ifndef SERIALGC void klassKlass::oop_push_contents(PSPromotionManager* pm, oop obj) { + Klass* k = Klass::cast(klassOop(obj)); + + oop* p = k->adr_java_mirror(); + if (PSScavenge::should_scavenge(p)) { + pm->claim_or_forward_depth(p); + } } int klassKlass::oop_update_pointers(ParCompactionManager* cm, oop obj) { Klass* k = Klass::cast(klassOop(obj));
*** 231,239 **** } } if (k->java_mirror() != NULL || (k->oop_is_instance() && instanceKlass::cast(klassOop(obj))->is_loaded())) { guarantee(k->java_mirror() != NULL, "should be allocated"); ! guarantee(k->java_mirror()->is_perm(), "should be in permspace"); guarantee(k->java_mirror()->is_instance(), "should be instance"); } } --- 241,249 ---- } } if (k->java_mirror() != NULL || (k->oop_is_instance() && instanceKlass::cast(klassOop(obj))->is_loaded())) { guarantee(k->java_mirror() != NULL, "should be allocated"); ! guarantee(k->java_mirror()->is_perm() || !JavaObjectsInPerm, "should be in permspace"); guarantee(k->java_mirror()->is_instance(), "should be instance"); } }
src/share/vm/oops/klassKlass.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File