< prev index next >

src/share/vm/gc/cms/concurrentMarkSweepGeneration.cpp

Print this page
rev 11483 : [mq]: webrev.01

*** 7363,7376 **** --- 7363,7383 ---- #ifdef ASSERT if (oop(addr)->klass_or_null() != NULL) { // Ignore mark word because we are running concurrent with mutators assert(oop(addr)->is_oop(true), "live block should be an oop"); + Klass* k = oop(addr)->klass(); + + // It's not always safe to ask for the size of a j.l.Class object, + // if the Class's oop_size hasn't been set yet. + if (!k->is_instance_klass() || + !InstanceKlass::cast(k)->is_mirror_instance_klass()) { assert(size == CompactibleFreeListSpace::adjustObjectSize(oop(addr)->size()), "P-mark and computed size do not agree"); } + } #endif } else { // This should be an initialized object that's alive. assert(oop(addr)->klass_or_null() != NULL,
< prev index next >