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