67 // Bias set map's base address for fast test if an oop is in set
68 jbyte* const _biased_set_map;
69 size_t _region_count;
70
71 public:
72 ShenandoahHeapRegionSet();
73 ~ShenandoahHeapRegionSet();
74
75 // Add region to set
76 void add_region(ShenandoahHeapRegion* r);
77 bool add_region_check_for_duplicates(ShenandoahHeapRegion* r);
78
79 // Remove region from set
80 void remove_region(ShenandoahHeapRegion* r);
81
82 size_t count() const { return _region_count; }
83 bool is_empty() const { return _region_count == 0; }
84
85 inline bool is_in(ShenandoahHeapRegion* r) const;
86 inline bool is_in(size_t region_number) const;
87 inline bool is_in(oop p) const;
88
89 void print_on(outputStream* out) const;
90
91 void clear();
92
93 private:
94 jbyte* biased_map_address() const {
95 return _biased_set_map;
96 }
97 };
98
99 #endif // SHARE_GC_SHENANDOAH_SHENANDOAHHEAPREGIONSET_HPP
|
67 // Bias set map's base address for fast test if an oop is in set
68 jbyte* const _biased_set_map;
69 size_t _region_count;
70
71 public:
72 ShenandoahHeapRegionSet();
73 ~ShenandoahHeapRegionSet();
74
75 // Add region to set
76 void add_region(ShenandoahHeapRegion* r);
77 bool add_region_check_for_duplicates(ShenandoahHeapRegion* r);
78
79 // Remove region from set
80 void remove_region(ShenandoahHeapRegion* r);
81
82 size_t count() const { return _region_count; }
83 bool is_empty() const { return _region_count == 0; }
84
85 inline bool is_in(ShenandoahHeapRegion* r) const;
86 inline bool is_in(size_t region_number) const;
87 inline bool is_in(HeapWord* p) const;
88
89 void print_on(outputStream* out) const;
90
91 void clear();
92
93 private:
94 jbyte* biased_map_address() const {
95 return _biased_set_map;
96 }
97 };
98
99 #endif // SHARE_GC_SHENANDOAH_SHENANDOAHHEAPREGIONSET_HPP
|