| 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 "vm/freelist.h" | 8 #include "vm/freelist.h" |
| 9 #include "vm/globals.h" | 9 #include "vm/globals.h" |
| 10 #include "vm/lockers.h" | 10 #include "vm/lockers.h" |
| (...skipping 350 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 361 bool is_locked); | 361 bool is_locked); |
| 362 uword TryAllocateInFreshPage(intptr_t size, | 362 uword TryAllocateInFreshPage(intptr_t size, |
| 363 HeapPage::PageType type, | 363 HeapPage::PageType type, |
| 364 GrowthPolicy growth_policy, | 364 GrowthPolicy growth_policy, |
| 365 bool is_locked); | 365 bool is_locked); |
| 366 uword TryAllocateDataBumpInternal(intptr_t size, | 366 uword TryAllocateDataBumpInternal(intptr_t size, |
| 367 GrowthPolicy growth_policy, | 367 GrowthPolicy growth_policy, |
| 368 bool is_locked); | 368 bool is_locked); |
| 369 // Makes bump block walkable; do not call concurrently with mutator. | 369 // Makes bump block walkable; do not call concurrently with mutator. |
| 370 void MakeIterable() const; | 370 void MakeIterable() const; |
| 371 // Return any bump allocation block to the freelist. |
| 372 void AbandonBumpAllocation(); |
| 371 HeapPage* AllocatePage(HeapPage::PageType type); | 373 HeapPage* AllocatePage(HeapPage::PageType type); |
| 372 void FreePage(HeapPage* page, HeapPage* previous_page); | 374 void FreePage(HeapPage* page, HeapPage* previous_page); |
| 373 HeapPage* AllocateLargePage(intptr_t size, HeapPage::PageType type); | 375 HeapPage* AllocateLargePage(intptr_t size, HeapPage::PageType type); |
| 374 void TruncateLargePage(HeapPage* page, intptr_t new_object_size_in_bytes); | 376 void TruncateLargePage(HeapPage* page, intptr_t new_object_size_in_bytes); |
| 375 void FreeLargePage(HeapPage* page, HeapPage* previous_page); | 377 void FreeLargePage(HeapPage* page, HeapPage* previous_page); |
| 376 void FreePages(HeapPage* pages); | 378 void FreePages(HeapPage* pages); |
| 377 HeapPage* NextPageAnySize(HeapPage* page) const { | 379 HeapPage* NextPageAnySize(HeapPage* page) const { |
| 378 ASSERT((pages_tail_ == NULL) || (pages_tail_->next() == NULL)); | 380 ASSERT((pages_tail_ == NULL) || (pages_tail_->next() == NULL)); |
| 379 ASSERT((exec_pages_tail_ == NULL) || (exec_pages_tail_->next() == NULL)); | 381 ASSERT((exec_pages_tail_ == NULL) || (exec_pages_tail_->next() == NULL)); |
| 380 if (page == pages_tail_) { | 382 if (page == pages_tail_) { |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 432 friend class ExclusiveLargePageIterator; | 434 friend class ExclusiveLargePageIterator; |
| 433 friend class PageSpaceController; | 435 friend class PageSpaceController; |
| 434 friend class SweeperTask; | 436 friend class SweeperTask; |
| 435 | 437 |
| 436 DISALLOW_IMPLICIT_CONSTRUCTORS(PageSpace); | 438 DISALLOW_IMPLICIT_CONSTRUCTORS(PageSpace); |
| 437 }; | 439 }; |
| 438 | 440 |
| 439 } // namespace dart | 441 } // namespace dart |
| 440 | 442 |
| 441 #endif // VM_PAGES_H_ | 443 #endif // VM_PAGES_H_ |
| OLD | NEW |