equal
deleted
inserted
replaced
93 assert(_promotion_manager != NULL, "Sanity"); |
93 assert(_promotion_manager != NULL, "Sanity"); |
94 } |
94 } |
95 |
95 |
96 template <class T> void do_oop_work(T* p) { |
96 template <class T> void do_oop_work(T* p) { |
97 assert (!oopDesc::is_null(*p), "expected non-null ref"); |
97 assert (!oopDesc::is_null(*p), "expected non-null ref"); |
98 assert ((oopDesc::load_decode_heap_oop_not_null(p))->is_oop(), |
98 assert (oopDesc::is_oop(oopDesc::load_decode_heap_oop_not_null(p)), |
99 "expected an oop while scanning weak refs"); |
99 "expected an oop while scanning weak refs"); |
100 |
100 |
101 // Weak refs may be visited more than once. |
101 // Weak refs may be visited more than once. |
102 if (PSScavenge::should_scavenge(p, _to_space)) { |
102 if (PSScavenge::should_scavenge(p, _to_space)) { |
103 _promotion_manager->copy_and_push_safe_barrier<T, /*promote_immediately=*/false>(p); |
103 _promotion_manager->copy_and_push_safe_barrier<T, /*promote_immediately=*/false>(p); |