< prev index next >

src/share/vm/gc/g1/heapRegion.cpp

Print this page




 811           }
 812         }
 813       } else {
 814         log_error(gc, verify)(PTR_FORMAT " not an oop", p2i(obj));
 815         *failures = true;
 816         return;
 817       }
 818     }
 819     prev_p = p;
 820     p += obj_size;
 821   }
 822 
 823   if (!is_young() && !is_empty()) {
 824     _bot_part.verify();
 825   }
 826 
 827   if (is_region_humongous) {
 828     oop obj = oop(this->humongous_start_region()->bottom());
 829     if ((HeapWord*)obj > bottom() || (HeapWord*)obj + obj->size() < bottom()) {
 830       log_error(gc, verify)("this humongous region is not part of its' humongous object " PTR_FORMAT, p2i(obj));


 831     }
 832   }
 833 
 834   if (!is_region_humongous && p != top()) {
 835     log_error(gc, verify)("end of last object " PTR_FORMAT " "
 836                           "does not match top " PTR_FORMAT, p2i(p), p2i(top()));
 837     *failures = true;
 838     return;
 839   }
 840 
 841   HeapWord* the_end = end();
 842   // Do some extra BOT consistency checking for addresses in the
 843   // range [top, end). BOT look-ups in this range should yield
 844   // top. No point in doing that if top == end (there's nothing there).
 845   if (p < the_end) {
 846     // Look up top
 847     HeapWord* addr_1 = p;
 848     HeapWord* b_start_1 = _bot_part.block_start_const(addr_1);
 849     if (b_start_1 != p) {
 850       log_error(gc, verify)("BOT look up for top: " PTR_FORMAT " "




 811           }
 812         }
 813       } else {
 814         log_error(gc, verify)(PTR_FORMAT " not an oop", p2i(obj));
 815         *failures = true;
 816         return;
 817       }
 818     }
 819     prev_p = p;
 820     p += obj_size;
 821   }
 822 
 823   if (!is_young() && !is_empty()) {
 824     _bot_part.verify();
 825   }
 826 
 827   if (is_region_humongous) {
 828     oop obj = oop(this->humongous_start_region()->bottom());
 829     if ((HeapWord*)obj > bottom() || (HeapWord*)obj + obj->size() < bottom()) {
 830       log_error(gc, verify)("this humongous region is not part of its' humongous object " PTR_FORMAT, p2i(obj));
 831       *failures = true;
 832       return;
 833     }
 834   }
 835 
 836   if (!is_region_humongous && p != top()) {
 837     log_error(gc, verify)("end of last object " PTR_FORMAT " "
 838                           "does not match top " PTR_FORMAT, p2i(p), p2i(top()));
 839     *failures = true;
 840     return;
 841   }
 842 
 843   HeapWord* the_end = end();
 844   // Do some extra BOT consistency checking for addresses in the
 845   // range [top, end). BOT look-ups in this range should yield
 846   // top. No point in doing that if top == end (there's nothing there).
 847   if (p < the_end) {
 848     // Look up top
 849     HeapWord* addr_1 = p;
 850     HeapWord* b_start_1 = _bot_part.block_start_const(addr_1);
 851     if (b_start_1 != p) {
 852       log_error(gc, verify)("BOT look up for top: " PTR_FORMAT " "


< prev index next >