src/hotspot/share/gc/g1/g1BarrierSet.hpp
changeset 49488 1f9dd2360b17
parent 49412 2c3b9dbba7bc
parent 49484 ee8fa73b90f9
child 49751 c3a10df652c0
--- a/src/hotspot/share/gc/g1/g1BarrierSet.hpp	Thu Mar 29 20:12:02 2018 +0100
+++ b/src/hotspot/share/gc/g1/g1BarrierSet.hpp	Sat Mar 24 01:08:35 2018 +0100
@@ -25,7 +25,7 @@
 #ifndef SHARE_VM_GC_G1_G1BARRIERSET_HPP
 #define SHARE_VM_GC_G1_G1BARRIERSET_HPP
 
-#include "gc/shared/cardTableModRefBS.hpp"
+#include "gc/shared/cardTableBarrierSet.hpp"
 
 class DirtyCardQueueSet;
 class CardTable;
@@ -34,7 +34,7 @@
 // This barrier is specialized to use a logging barrier to support
 // snapshot-at-the-beginning marking.
 
-class G1BarrierSet: public CardTableModRefBS {
+class G1BarrierSet: public CardTableBarrierSet {
   friend class VMStructs;
  private:
   DirtyCardQueueSet& _dcqs;
@@ -49,9 +49,13 @@
 
   static void enqueue_if_weak_or_archive(DecoratorSet decorators, oop value);
 
-  template <class T> void write_ref_array_pre_work(T* dst, int count);
-  virtual void write_ref_array_pre(oop* dst, int count, bool dest_uninitialized);
-  virtual void write_ref_array_pre(narrowOop* dst, int count, bool dest_uninitialized);
+  template <class T> void write_ref_array_pre_work(T* dst, size_t count);
+  virtual void write_ref_array_pre(oop* dst, size_t count, bool dest_uninitialized);
+  virtual void write_ref_array_pre(narrowOop* dst, size_t count, bool dest_uninitialized);
+
+  static void write_ref_array_pre_oop_entry(oop* dst, size_t length);
+  static void write_ref_array_pre_narrow_oop_entry(narrowOop* dst, size_t length);
+  static void write_ref_array_post_entry(HeapWord* dst, size_t length);
 
   template <DecoratorSet decorators, typename T>
   void write_ref_field_pre(T* field);