104
105 bool initialization_succeeded() { return _virtual_space_list != NULL; }
106
107 size_t reserved_words() { return _reserved_words; }
108 size_t reserved_bytes() { return reserved_words() * BytesPerWord; }
109 size_t committed_words() { return _committed_words; }
110 size_t committed_bytes() { return committed_words() * BytesPerWord; }
111
112 void inc_reserved_words(size_t v);
113 void dec_reserved_words(size_t v);
114 void inc_committed_words(size_t v);
115 void dec_committed_words(size_t v);
116 void inc_virtual_space_count();
117 void dec_virtual_space_count();
118
119 bool contains(const void* ptr);
120
121 // Unlink empty VirtualSpaceNodes and free it.
122 void purge(ChunkManager* chunk_manager);
123
124 void print_on(outputStream* st) const { print_on(st, K); }
125 void print_on(outputStream* st, size_t scale) const;
126 void print_map(outputStream* st) const;
127
128 class VirtualSpaceListIterator : public StackObj {
129 VirtualSpaceNode* _virtual_spaces;
130 public:
131 VirtualSpaceListIterator(VirtualSpaceNode* virtual_spaces) :
132 _virtual_spaces(virtual_spaces) {}
133
134 bool repeat() {
135 return _virtual_spaces != NULL;
136 }
137
138 VirtualSpaceNode* get_next() {
139 VirtualSpaceNode* result = _virtual_spaces;
140 if (_virtual_spaces != NULL) {
141 _virtual_spaces = _virtual_spaces->next();
142 }
143 return result;
|
104
105 bool initialization_succeeded() { return _virtual_space_list != NULL; }
106
107 size_t reserved_words() { return _reserved_words; }
108 size_t reserved_bytes() { return reserved_words() * BytesPerWord; }
109 size_t committed_words() { return _committed_words; }
110 size_t committed_bytes() { return committed_words() * BytesPerWord; }
111
112 void inc_reserved_words(size_t v);
113 void dec_reserved_words(size_t v);
114 void inc_committed_words(size_t v);
115 void dec_committed_words(size_t v);
116 void inc_virtual_space_count();
117 void dec_virtual_space_count();
118
119 bool contains(const void* ptr);
120
121 // Unlink empty VirtualSpaceNodes and free it.
122 void purge(ChunkManager* chunk_manager);
123
124 VirtualSpaceNode* find_enclosing_space(const void* p);
125
126 void print_on(outputStream* st) const { print_on(st, K); }
127 void print_on(outputStream* st, size_t scale) const;
128 void print_map(outputStream* st) const;
129
130 class VirtualSpaceListIterator : public StackObj {
131 VirtualSpaceNode* _virtual_spaces;
132 public:
133 VirtualSpaceListIterator(VirtualSpaceNode* virtual_spaces) :
134 _virtual_spaces(virtual_spaces) {}
135
136 bool repeat() {
137 return _virtual_spaces != NULL;
138 }
139
140 VirtualSpaceNode* get_next() {
141 VirtualSpaceNode* result = _virtual_spaces;
142 if (_virtual_spaces != NULL) {
143 _virtual_spaces = _virtual_spaces->next();
144 }
145 return result;
|