< prev index next >
src/hotspot/share/gc/z/zMark.cpp
Print this page
*** 117,126 ****
--- 117,131 ----
}
}
}
class ZMarkRootsIteratorClosure : public ZRootsIteratorClosure {
+ private:
+ static void fixup_address(HeapWord** p) {
+ *p = (HeapWord*)ZAddress::good_or_null((uintptr_t)*p);
+ }
+
public:
ZMarkRootsIteratorClosure() {
ZStatTLAB::reset();
}
*** 134,143 ****
--- 139,149 ----
// Update thread local address bad mask
ZThreadLocalData::set_address_bad_mask(thread, ZAddressBadMask);
// Retire TLAB
if (UseTLAB && thread->is_Java_thread()) {
+ thread->tlab().addresses_do(fixup_address);
thread->tlab().retire(ZStatTLAB::get());
thread->tlab().resize();
}
}
< prev index next >