791 void note_end_of_gc() { |
791 void note_end_of_gc() { |
792 _markStack.note_end_of_gc(); |
792 _markStack.note_end_of_gc(); |
793 } |
793 } |
794 |
794 |
795 // Verify that there are no CSet oops on the stacks (taskqueues / |
795 // Verify that there are no CSet oops on the stacks (taskqueues / |
796 // global mark stack), enqueued SATB buffers, per-thread SATB |
796 // global mark stack) and fingers (global / per-task). |
797 // buffers, and fingers (global / per-task). The boolean parameters |
797 // If marking is not in progress, it's a no-op. |
798 // decide which of the above data structures to verify. If marking |
798 void verify_no_cset_oops() PRODUCT_RETURN; |
799 // is not in progress, it's a no-op. |
|
800 void verify_no_cset_oops(bool verify_stacks, |
|
801 bool verify_enqueued_buffers, |
|
802 bool verify_thread_buffers, |
|
803 bool verify_fingers) PRODUCT_RETURN; |
|
804 |
799 |
805 bool isPrevMarked(oop p) const { |
800 bool isPrevMarked(oop p) const { |
806 assert(p != NULL && p->is_oop(), "expected an oop"); |
801 assert(p != NULL && p->is_oop(), "expected an oop"); |
807 HeapWord* addr = (HeapWord*)p; |
802 HeapWord* addr = (HeapWord*)p; |
808 assert(addr >= _prevMarkBitMap->startWord() || |
803 assert(addr >= _prevMarkBitMap->startWord() || |