Index: src/spaces.h |
diff --git a/src/spaces.h b/src/spaces.h |
index a6b8ea48df3b7fc17cf4810d9dd0744007c3fe2d..9199cdbb2ada1ccc852c98ffabea05dda9d84c75 100644 |
--- a/src/spaces.h |
+++ b/src/spaces.h |
@@ -1039,6 +1039,11 @@ class PagedSpace : public Space { |
// Freed pages are moved to the end of page list. |
void FreePages(Page* prev, Page* last); |
+ // Deallocates a block. |
+ virtual void DeallocateBlock(Address start, |
+ int size_in_bytes, |
+ bool add_to_freelist) = 0; |
+ |
// Set space allocation info. |
void SetTop(Address top) { |
allocation_info_.top = top; |
@@ -1097,6 +1102,8 @@ class PagedSpace : public Space { |
// Returns the page of the allocation pointer. |
Page* AllocationTopPage() { return TopPageOf(allocation_info_); } |
+ void RelinkPageListInChunkOrder(bool deallocate_blocks); |
+ |
protected: |
// Maximum capacity of this space. |
int max_capacity_; |
@@ -1814,6 +1821,10 @@ class OldSpace : public PagedSpace { |
} |
} |
+ virtual void DeallocateBlock(Address start, |
+ int size_in_bytes, |
+ bool add_to_freelist); |
+ |
// Prepare for full garbage collection. Resets the relocation pointer and |
// clears the free list. |
virtual void PrepareForMarkCompact(bool will_compact); |
@@ -1888,6 +1899,9 @@ class FixedSpace : public PagedSpace { |
virtual void PutRestOfCurrentPageOnFreeList(Page* current_page); |
+ virtual void DeallocateBlock(Address start, |
+ int size_in_bytes, |
+ bool add_to_freelist); |
#ifdef DEBUG |
// Reports statistic info of the space |
void ReportStatistics(); |