< prev index next >
src/hotspot/share/gc/g1/g1OopClosures.hpp
Print this page
rev 51626 : imported patch 8209843-too-much-reference-processing
@@ -52,12 +52,12 @@
inline void prefetch_and_push(T* p, oop const obj);
template <class T>
inline void handle_non_cset_obj_common(InCSetState const state, T* p, oop const obj);
public:
- // This closure needs special handling for InstanceRefKlass.
- virtual ReferenceIterationMode reference_iteration_mode() { return DO_DISCOVERED_AND_DISCOVERY; }
+ virtual ReferenceIterationMode reference_iteration_mode() { return DO_FIELDS; }
+
void set_region(HeapRegion* from) { _from = from; }
inline void trim_queue_partially();
};
@@ -96,10 +96,13 @@
template <class T> void do_oop_work(T* p);
virtual void do_oop(oop* p) { do_oop_work(p); }
virtual void do_oop(narrowOop* p) { do_oop_work(p); }
+ // We need to do reference discovery while processing evacuated objects.
+ virtual ReferenceIterationMode reference_iteration_mode() { return DO_DISCOVERED_AND_DISCOVERY; }
+
void set_ref_discoverer(ReferenceDiscoverer* rd) {
set_ref_discoverer_internal(rd);
}
};
@@ -199,12 +202,11 @@
G1ConcurrentRefineOopClosure(G1CollectedHeap* g1h, uint worker_i) :
_g1h(g1h),
_worker_i(worker_i) {
}
- // This closure needs special handling for InstanceRefKlass.
- virtual ReferenceIterationMode reference_iteration_mode() { return DO_DISCOVERED_AND_DISCOVERY; }
+ virtual ReferenceIterationMode reference_iteration_mode() { return DO_FIELDS; }
template <class T> void do_oop_work(T* p);
virtual void do_oop(narrowOop* p) { do_oop_work(p); }
virtual void do_oop(oop* p) { do_oop_work(p); }
};
@@ -217,10 +219,10 @@
}
template <class T> void do_oop_work(T* p);
virtual void do_oop(oop* p) { do_oop_work(p); }
virtual void do_oop(narrowOop* p) { do_oop_work(p); }
- // This closure needs special handling for InstanceRefKlass.
- virtual ReferenceIterationMode reference_iteration_mode() { return DO_DISCOVERED_AND_DISCOVERY; }
+
+ virtual ReferenceIterationMode reference_iteration_mode() { return DO_FIELDS; }
};
#endif // SHARE_VM_GC_G1_G1OOPCLOSURES_HPP
< prev index next >