OLD | NEW |
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 #ifndef VM_PAGES_H_ | 5 #ifndef VM_PAGES_H_ |
6 #define VM_PAGES_H_ | 6 #define VM_PAGES_H_ |
7 | 7 |
8 #include <map> | 8 #include <map> |
9 | 9 |
10 #include "vm/freelist.h" | 10 #include "vm/freelist.h" |
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
188 return size <= kAllocatablePageSize; | 188 return size <= kAllocatablePageSize; |
189 } | 189 } |
190 | 190 |
191 void VisitObjects(ObjectVisitor* visitor) const; | 191 void VisitObjects(ObjectVisitor* visitor) const; |
192 void VisitObjectPointers(ObjectPointerVisitor* visitor) const; | 192 void VisitObjectPointers(ObjectPointerVisitor* visitor) const; |
193 | 193 |
194 RawObject* FindObject(FindObjectVisitor* visitor, | 194 RawObject* FindObject(FindObjectVisitor* visitor, |
195 HeapPage::PageType type) const; | 195 HeapPage::PageType type) const; |
196 | 196 |
197 // Collect the garbage in the page space using mark-sweep. | 197 // Collect the garbage in the page space using mark-sweep. |
198 void MarkSweep(bool invoke_api_callbacks, const char* gc_reason); | 198 void MarkSweep(bool invoke_api_callbacks); |
199 | 199 |
200 static HeapPage* PageFor(RawObject* raw_obj) { | 200 static HeapPage* PageFor(RawObject* raw_obj) { |
201 return reinterpret_cast<HeapPage*>( | 201 return reinterpret_cast<HeapPage*>( |
202 RawObject::ToAddr(raw_obj) & ~(kPageSize -1)); | 202 RawObject::ToAddr(raw_obj) & ~(kPageSize -1)); |
203 } | 203 } |
204 | 204 |
205 void StartEndAddress(uword* start, uword* end) const; | 205 void StartEndAddress(uword* start, uword* end) const; |
206 | 206 |
207 void EnableGrowthControl() { | 207 void EnableGrowthControl() { |
208 page_space_controller_.Enable(); | 208 page_space_controller_.Enable(); |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
244 HeapPage* pages_tail_; | 244 HeapPage* pages_tail_; |
245 HeapPage* large_pages_; | 245 HeapPage* large_pages_; |
246 | 246 |
247 PeerTable peer_table_; | 247 PeerTable peer_table_; |
248 | 248 |
249 // Various sizes being tracked for this generation. | 249 // Various sizes being tracked for this generation. |
250 intptr_t max_capacity_; | 250 intptr_t max_capacity_; |
251 intptr_t capacity_; | 251 intptr_t capacity_; |
252 intptr_t in_use_; | 252 intptr_t in_use_; |
253 | 253 |
254 // Old-gen GC cycle count. | |
255 int count_; | |
256 | |
257 // Keep track whether a MarkSweep is currently running. | 254 // Keep track whether a MarkSweep is currently running. |
258 bool sweeping_; | 255 bool sweeping_; |
259 | 256 |
260 PageSpaceController page_space_controller_; | 257 PageSpaceController page_space_controller_; |
261 | 258 |
262 DISALLOW_IMPLICIT_CONSTRUCTORS(PageSpace); | 259 DISALLOW_IMPLICIT_CONSTRUCTORS(PageSpace); |
263 }; | 260 }; |
264 | 261 |
265 } // namespace dart | 262 } // namespace dart |
266 | 263 |
267 #endif // VM_PAGES_H_ | 264 #endif // VM_PAGES_H_ |
OLD | NEW |