< prev index next >

src/share/vm/memory/modRefBarrierSet.hpp

Print this page
rev 7807 : [mq]: bcast

*** 35,48 **** class Generation; class ModRefBarrierSet: public BarrierSet { public: - bool is_a(BarrierSet::Name bsn) { - return bsn == BarrierSet::ModRef; - } - // Barriers only on ref writes. bool has_read_ref_barrier() { return false; } bool has_read_prim_barrier() { return false; } bool has_write_ref_barrier() { return true; } bool has_write_prim_barrier() { return false; } --- 35,44 ----
*** 58,68 **** void read_ref_field(void* field) {} void read_prim_field(HeapWord* field, size_t bytes) {} protected: ! ModRefBarrierSet(BarrierSet::Name kind) : BarrierSet(kind) { } ~ModRefBarrierSet() { } virtual void write_ref_field_work(void* field, oop new_val, bool release = false) = 0; public: void write_prim_field(HeapWord* field, size_t bytes, --- 54,65 ---- void read_ref_field(void* field) {} void read_prim_field(HeapWord* field, size_t bytes) {} protected: ! ModRefBarrierSet(const BarrierSet::FakeRtti& fake_rtti) ! : BarrierSet(fake_rtti.add_tag(BarrierSet::ModRef)) { } ~ModRefBarrierSet() { } virtual void write_ref_field_work(void* field, oop new_val, bool release = false) = 0; public: void write_prim_field(HeapWord* field, size_t bytes,
*** 98,103 **** --- 95,105 ---- // The caller guarantees that "mr" contains no references. (Perhaps it's // objects have been moved elsewhere.) virtual void clear(MemRegion mr) = 0; }; + template<> + struct BarrierSet::GetName<ModRefBarrierSet> { + static const BarrierSet::Name value = BarrierSet::ModRef; + }; + #endif // SHARE_VM_MEMORY_MODREFBARRIERSET_HPP
< prev index next >