--- old/src/share/vm/gc/g1/g1SATBCardTableModRefBS.hpp 2015-11-05 08:02:44.921208258 +0100 +++ new/src/share/vm/gc/g1/g1SATBCardTableModRefBS.hpp 2015-11-05 08:02:44.821204031 +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 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 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 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);