1.1 --- a/src/share/vm/gc_implementation/g1/heapRegion.cpp Fri Aug 31 16:39:35 2012 -0700 1.2 +++ b/src/share/vm/gc_implementation/g1/heapRegion.cpp Sat Sep 01 13:25:18 2012 -0400 1.3 @@ -40,7 +40,7 @@ 1.4 size_t HeapRegion::CardsPerRegion = 0; 1.5 1.6 HeapRegionDCTOC::HeapRegionDCTOC(G1CollectedHeap* g1, 1.7 - HeapRegion* hr, OopClosure* cl, 1.8 + HeapRegion* hr, ExtendedOopClosure* cl, 1.9 CardTableModRefBS::PrecisionStyle precision, 1.10 FilterKind fk) : 1.11 ContiguousSpaceDCTOC(hr, cl, precision, NULL), 1.12 @@ -83,8 +83,8 @@ 1.13 1.14 void print_object(outputStream* out, oop obj) { 1.15 #ifdef PRODUCT 1.16 - klassOop k = obj->klass(); 1.17 - const char* class_name = instanceKlass::cast(k)->external_name(); 1.18 + Klass* k = obj->klass(); 1.19 + const char* class_name = InstanceKlass::cast(k)->external_name(); 1.20 out->print_cr("class name %s", class_name); 1.21 #else // PRODUCT 1.22 obj->print_on(out); 1.23 @@ -213,10 +213,10 @@ 1.24 void HeapRegionDCTOC::walk_mem_region_with_cl(MemRegion mr, 1.25 HeapWord* bottom, 1.26 HeapWord* top, 1.27 - OopClosure* cl) { 1.28 + ExtendedOopClosure* cl) { 1.29 G1CollectedHeap* g1h = _g1; 1.30 int oop_size; 1.31 - OopClosure* cl2 = NULL; 1.32 + ExtendedOopClosure* cl2 = NULL; 1.33 1.34 FilterIntoCSClosure intoCSFilt(this, g1h, cl); 1.35 FilterOutOfRegionClosure outOfRegionFilt(_hr, cl); 1.36 @@ -535,7 +535,7 @@ 1.37 set_saved_mark(); 1.38 } 1.39 1.40 -void HeapRegion::oops_in_mr_iterate(MemRegion mr, OopClosure* cl) { 1.41 +void HeapRegion::oops_in_mr_iterate(MemRegion mr, ExtendedOopClosure* cl) { 1.42 HeapWord* p = mr.start(); 1.43 HeapWord* e = mr.end(); 1.44 oop obj; 1.45 @@ -553,7 +553,7 @@ 1.46 SPECIALIZED_SINCE_SAVE_MARKS_CLOSURES(HeapRegion_OOP_SINCE_SAVE_MARKS_DEFN) 1.47 1.48 1.49 -void HeapRegion::oop_before_save_marks_iterate(OopClosure* cl) { 1.50 +void HeapRegion::oop_before_save_marks_iterate(ExtendedOopClosure* cl) { 1.51 oops_in_mr_iterate(MemRegion(bottom(), saved_mark_word()), cl); 1.52 } 1.53 1.54 @@ -801,10 +801,10 @@ 1.55 1.56 if (!g1->is_obj_dead_cond(obj, this, vo)) { 1.57 if (obj->is_oop()) { 1.58 - klassOop klass = obj->klass(); 1.59 - if (!klass->is_perm()) { 1.60 + Klass* klass = obj->klass(); 1.61 + if (!klass->is_metadata()) { 1.62 gclog_or_tty->print_cr("klass "PTR_FORMAT" of object "PTR_FORMAT" " 1.63 - "not in perm", klass, obj); 1.64 + "not metadata", klass, obj); 1.65 *failures = true; 1.66 return; 1.67 } else if (!klass->is_klass()) { 1.68 @@ -814,7 +814,7 @@ 1.69 return; 1.70 } else { 1.71 vl_cl.set_containing_obj(obj); 1.72 - obj->oop_iterate(&vl_cl); 1.73 + obj->oop_iterate_no_header(&vl_cl); 1.74 if (vl_cl.failures()) { 1.75 *failures = true; 1.76 }