< prev index next >
src/hotspot/share/gc/parallel/psCardTable.cpp
Print this page
*** 44,53 ****
--- 44,55 ----
HeapWord* _unmarked_addr;
protected:
template <class T> void do_oop_work(T* p) {
oop obj = RawAccess<>::oop_load(p);
+ assert_object_is_in_heap_or_null(p, obj);
+
if (_young_gen->is_in_reserved(obj) &&
!_card_table->addr_is_marked_imprecise(p)) {
// Don't overwrite the first missing card mark
if (_unmarked_addr == NULL) {
_unmarked_addr = (HeapWord*)p;
*** 101,110 ****
--- 103,114 ----
PSCardTable* _card_table;
protected:
template <class T> void do_oop_work(T* p) {
oop obj = RawAccess<IS_NOT_NULL>::oop_load(p);
+ assert_object_is_in_heap_or_null(p, obj);
+
if (_young_gen->is_in_reserved(obj)) {
assert(_card_table->addr_is_marked_precise(p), "Found unmarked precise oop");
_card_table->set_card_newgen(p);
}
}
< prev index next >