--- a/hotspot/src/share/vm/gc/g1/g1SATBCardTableModRefBS.hpp Fri Nov 06 06:13:00 2015 +0100
+++ b/hotspot/src/share/vm/gc/g1/g1SATBCardTableModRefBS.hpp Fri Nov 06 09:46:54 2015 +0100
@@ -56,21 +56,15 @@
virtual bool has_write_ref_pre_barrier() { return true; }
- // This notes that we don't need to access any BarrierSet data
- // structures, so this can be called from a static context.
- template <class T> static void write_ref_field_pre_static(T* field, oop newVal) {
+ // We export this to make it available in cases where the static
+ // type of the barrier set is known. Note that it is non-virtual.
+ template <class T> inline void inline_write_ref_field_pre(T* field, oop newVal) {
T heap_oop = oopDesc::load_heap_oop(field);
if (!oopDesc::is_null(heap_oop)) {
enqueue(oopDesc::decode_heap_oop(heap_oop));
}
}
- // We export this to make it available in cases where the static
- // type of the barrier set is known. Note that it is non-virtual.
- template <class T> inline void inline_write_ref_field_pre(T* field, oop newVal) {
- write_ref_field_pre_static(field, newVal);
- }
-
// These are the more general virtual versions.
virtual void write_ref_field_pre_work(oop* field, oop new_val) {
inline_write_ref_field_pre(field, new_val);
@@ -173,9 +167,6 @@
virtual void resize_covered_region(MemRegion new_region) { ShouldNotReachHere(); }
- // Can be called from static contexts.
- static void write_ref_field_static(void* field, oop new_val);
-
// NB: if you do a whole-heap invalidation, the "usual invariant" defined
// above no longer applies.
void invalidate(MemRegion mr, bool whole_heap = false);