< prev index next >
src/share/vm/gc_implementation/g1/g1SATBCardTableModRefBS.hpp
Print this page
rev 7807 : [mq]: bcast
*** 41,64 ****
protected:
enum G1CardValues {
g1_young_gen = CT_MR_BS_last_reserved << 1
};
! G1SATBCardTableModRefBS(MemRegion whole_heap, BarrierSet::Name kind);
~G1SATBCardTableModRefBS() { }
public:
static int g1_young_card_val() { return g1_young_gen; }
// Add "pre_val" to a set of objects that may have been disconnected from the
// pre-marking object graph.
static void enqueue(oop pre_val);
- bool is_a(BarrierSet::Name bsn) {
- return bsn == BarrierSet::G1SATBCT || CardTableModRefBS::is_a(bsn);
- }
-
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) {
--- 41,60 ----
protected:
enum G1CardValues {
g1_young_gen = CT_MR_BS_last_reserved << 1
};
! G1SATBCardTableModRefBS(MemRegion whole_heap, const BarrierSet::FakeRtti& fake_rtti);
~G1SATBCardTableModRefBS() { }
public:
static int g1_young_card_val() { return g1_young_gen; }
// Add "pre_val" to a set of objects that may have been disconnected from the
// pre-marking object graph.
static void enqueue(oop pre_val);
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) {
*** 126,135 ****
--- 122,136 ----
jbyte val = _byte_map[card_index];
return (val & (clean_card_mask_val() | deferred_card_val())) == deferred_card_val();
}
};
+ template<>
+ struct BarrierSet::GetName<G1SATBCardTableModRefBS> {
+ static const BarrierSet::Name value = BarrierSet::G1SATBCT;
+ };
+
class G1SATBCardTableLoggingModRefBSChangedListener : public G1MappingChangedListener {
private:
G1SATBCardTableLoggingModRefBS* _card_table;
public:
G1SATBCardTableLoggingModRefBSChangedListener() : _card_table(NULL) { }
*** 157,171 ****
virtual void initialize() { }
virtual void initialize(G1RegionToSpaceMapper* mapper);
virtual void resize_covered_region(MemRegion new_region) { ShouldNotReachHere(); }
- bool is_a(BarrierSet::Name bsn) {
- return bsn == BarrierSet::G1SATBCTLogging ||
- G1SATBCardTableModRefBS::is_a(bsn);
- }
-
void write_ref_field_work(void* field, oop new_val, bool release = false);
// Can be called from static contexts.
static void write_ref_field_static(void* field, oop new_val);
--- 158,167 ----
*** 175,180 ****
--- 171,181 ----
void write_region_work(MemRegion mr) { invalidate(mr); }
void write_ref_array_work(MemRegion mr) { invalidate(mr); }
};
+ template<>
+ struct BarrierSet::GetName<G1SATBCardTableLoggingModRefBS> {
+ static const BarrierSet::Name value = BarrierSet::G1SATBCTLogging;
+ };
+
#endif // SHARE_VM_GC_IMPLEMENTATION_G1_G1SATBCARDTABLEMODREFBS_HPP
< prev index next >