< prev index next >
src/share/vm/gc/shared/cardTableRS.cpp
Print this page
*** 276,289 ****
#ifdef ASSERT
// Convert the assertion check to a warning if we are running
// CMS+ParNew until related bug is fixed.
MemRegion ur = sp->used_region();
assert(ur.contains(urasm) || (UseConcMarkSweepGC),
! err_msg("Did you forget to call save_marks()? "
"[" PTR_FORMAT ", " PTR_FORMAT ") is not contained in "
"[" PTR_FORMAT ", " PTR_FORMAT ")",
! p2i(urasm.start()), p2i(urasm.end()), p2i(ur.start()), p2i(ur.end())));
// In the case of CMS+ParNew, issue a warning
if (!ur.contains(urasm)) {
assert(UseConcMarkSweepGC, "Tautology: see assert above");
warning("CMS+ParNew: Did you forget to call save_marks()? "
"[" PTR_FORMAT ", " PTR_FORMAT ") is not contained in "
--- 276,289 ----
#ifdef ASSERT
// Convert the assertion check to a warning if we are running
// CMS+ParNew until related bug is fixed.
MemRegion ur = sp->used_region();
assert(ur.contains(urasm) || (UseConcMarkSweepGC),
! "Did you forget to call save_marks()? "
"[" PTR_FORMAT ", " PTR_FORMAT ") is not contained in "
"[" PTR_FORMAT ", " PTR_FORMAT ")",
! p2i(urasm.start()), p2i(urasm.end()), p2i(ur.start()), p2i(ur.end()));
// In the case of CMS+ParNew, issue a warning
if (!ur.contains(urasm)) {
assert(UseConcMarkSweepGC, "Tautology: see assert above");
warning("CMS+ParNew: Did you forget to call save_marks()? "
"[" PTR_FORMAT ", " PTR_FORMAT ") is not contained in "
*** 340,368 ****
HeapWord* _end;
protected:
template <class T> void do_oop_work(T* p) {
HeapWord* jp = (HeapWord*)p;
assert(jp >= _begin && jp < _end,
! err_msg("Error: jp " PTR_FORMAT " should be within "
"[_begin, _end) = [" PTR_FORMAT "," PTR_FORMAT ")",
! p2i(jp), p2i(_begin), p2i(_end)));
oop obj = oopDesc::load_decode_heap_oop(p);
guarantee(obj == NULL || (HeapWord*)obj >= _boundary,
! err_msg("pointer " PTR_FORMAT " at " PTR_FORMAT " on "
"clean card crosses boundary" PTR_FORMAT,
! p2i((HeapWord*)obj), p2i(jp), p2i(_boundary)));
}
public:
VerifyCleanCardClosure(HeapWord* b, HeapWord* begin, HeapWord* end) :
_boundary(b), _begin(begin), _end(end) {
assert(b <= begin,
! err_msg("Error: boundary " PTR_FORMAT " should be at or below begin " PTR_FORMAT,
! p2i(b), p2i(begin)));
assert(begin <= end,
! err_msg("Error: begin " PTR_FORMAT " should be strictly below end " PTR_FORMAT,
! p2i(begin), p2i(end)));
}
virtual void do_oop(oop* p) { VerifyCleanCardClosure::do_oop_work(p); }
virtual void do_oop(narrowOop* p) { VerifyCleanCardClosure::do_oop_work(p); }
};
--- 340,368 ----
HeapWord* _end;
protected:
template <class T> void do_oop_work(T* p) {
HeapWord* jp = (HeapWord*)p;
assert(jp >= _begin && jp < _end,
! "Error: jp " PTR_FORMAT " should be within "
"[_begin, _end) = [" PTR_FORMAT "," PTR_FORMAT ")",
! p2i(jp), p2i(_begin), p2i(_end));
oop obj = oopDesc::load_decode_heap_oop(p);
guarantee(obj == NULL || (HeapWord*)obj >= _boundary,
! "pointer " PTR_FORMAT " at " PTR_FORMAT " on "
"clean card crosses boundary" PTR_FORMAT,
! p2i((HeapWord*)obj), p2i(jp), p2i(_boundary));
}
public:
VerifyCleanCardClosure(HeapWord* b, HeapWord* begin, HeapWord* end) :
_boundary(b), _begin(begin), _end(end) {
assert(b <= begin,
! "Error: boundary " PTR_FORMAT " should be at or below begin " PTR_FORMAT,
! p2i(b), p2i(begin));
assert(begin <= end,
! "Error: begin " PTR_FORMAT " should be strictly below end " PTR_FORMAT,
! p2i(begin), p2i(end));
}
virtual void do_oop(oop* p) { VerifyCleanCardClosure::do_oop_work(p); }
virtual void do_oop(narrowOop* p) { VerifyCleanCardClosure::do_oop_work(p); }
};
< prev index next >