50
51 class MutableSpace: public CHeapObj<mtGC> {
52 friend class VMStructs;
53
54 // Helper for mangling unused space in debug builds
55 MutableSpaceMangler* _mangler;
56 // The last region which page had been setup to be interleaved.
57 MemRegion _last_setup_region;
58 size_t _alignment;
59 HeapWord* _bottom;
60 HeapWord* volatile _top;
61 HeapWord* _end;
62
63 MutableSpaceMangler* mangler() { return _mangler; }
64
65 void numa_setup_pages(MemRegion mr, bool clear_space);
66
67 void set_last_setup_region(MemRegion mr) { _last_setup_region = mr; }
68 MemRegion last_setup_region() const { return _last_setup_region; }
69
70 public:
71 virtual ~MutableSpace();
72 MutableSpace(size_t page_size);
73
74 // Accessors
75 HeapWord* bottom() const { return _bottom; }
76 HeapWord* top() const { return _top; }
77 HeapWord* end() const { return _end; }
78
79 void set_bottom(HeapWord* value) { _bottom = value; }
80 virtual void set_top(HeapWord* value) { _top = value; }
81 void set_end(HeapWord* value) { _end = value; }
82
83 HeapWord* volatile* top_addr() { return &_top; }
84 HeapWord** end_addr() { return &_end; }
85
86 size_t alignment() { return _alignment; }
87
88 MemRegion region() const { return MemRegion(bottom(), end()); }
89
|
50
51 class MutableSpace: public CHeapObj<mtGC> {
52 friend class VMStructs;
53
54 // Helper for mangling unused space in debug builds
55 MutableSpaceMangler* _mangler;
56 // The last region which page had been setup to be interleaved.
57 MemRegion _last_setup_region;
58 size_t _alignment;
59 HeapWord* _bottom;
60 HeapWord* volatile _top;
61 HeapWord* _end;
62
63 MutableSpaceMangler* mangler() { return _mangler; }
64
65 void numa_setup_pages(MemRegion mr, bool clear_space);
66
67 void set_last_setup_region(MemRegion mr) { _last_setup_region = mr; }
68 MemRegion last_setup_region() const { return _last_setup_region; }
69
70 template<bool COMPACT_HEADERS>
71 void object_iterate_impl(ObjectClosure* cl);
72
73 public:
74 virtual ~MutableSpace();
75 MutableSpace(size_t page_size);
76
77 // Accessors
78 HeapWord* bottom() const { return _bottom; }
79 HeapWord* top() const { return _top; }
80 HeapWord* end() const { return _end; }
81
82 void set_bottom(HeapWord* value) { _bottom = value; }
83 virtual void set_top(HeapWord* value) { _top = value; }
84 void set_end(HeapWord* value) { _end = value; }
85
86 HeapWord* volatile* top_addr() { return &_top; }
87 HeapWord** end_addr() { return &_end; }
88
89 size_t alignment() { return _alignment; }
90
91 MemRegion region() const { return MemRegion(bottom(), end()); }
92
|