< prev index next >
src/share/vm/gc/g1/g1OopClosures.hpp
Print this page
rev 12854 : 8138888: Remove ExtendedOopClosure::apply_to_weak_ref_discovered_field
Reviewed-by:
@@ -54,11 +54,12 @@
G1ParClosureSuper(G1CollectedHeap* g1, G1ParScanThreadState* par_scan_state);
~G1ParClosureSuper() { }
public:
- virtual bool apply_to_weak_ref_discovered_field() { return true; }
+ // This closure needs special handling for InstanceRefKlass.
+ virtual ReferenceIterationMode reference_iteration_mode() { return DO_DISCOVERED_AND_DISCOVERY; }
};
class G1ParPushHeapRSClosure : public G1ParClosureSuper {
public:
G1ParPushHeapRSClosure(G1CollectedHeap* g1,
@@ -187,12 +188,10 @@
void set_from(HeapRegion* from) {
assert(from != NULL, "from region must be non-NULL");
_from = from;
}
- bool apply_to_weak_ref_discovered_field() { return true; }
-
bool self_forwarded(oop obj) {
markOop m = obj->mark();
bool result = (m->is_marked() && ((oop)m->decode_pointer() == obj));
return result;
}
@@ -200,8 +199,11 @@
bool has_refs_into_cset() const { return _has_refs_into_cset; }
template <class T> inline void do_oop_nv(T* p);
virtual inline void do_oop(narrowOop* p);
virtual inline void do_oop(oop* p);
+
+ // This closure needs special handling for InstanceRefKlass.
+ virtual ReferenceIterationMode reference_iteration_mode() { return DO_DISCOVERED_AND_DISCOVERY; }
};
#endif // SHARE_VM_GC_G1_G1OOPCLOSURES_HPP
< prev index next >