Index: src/heap/spaces.h |
diff --git a/src/heap/spaces.h b/src/heap/spaces.h |
index dcd336437e9cdc161ff5b157a3f1de512a4e051e..e21876be511858d4cafe4c4bef746e7b77bd390b 100644 |
--- a/src/heap/spaces.h |
+++ b/src/heap/spaces.h |
@@ -1411,45 +1411,6 @@ class AllocationStats BASE_EMBEDDED { |
// ----------------------------------------------------------------------------- |
// Free lists for old object spaces |
-// |
-// Free-list nodes are free blocks in the heap. They look like heap objects |
-// (free-list node pointers have the heap object tag, and they have a map like |
-// a heap object). They have a size and a next pointer. The next pointer is |
-// the raw address of the next free list node (or NULL). |
-class FreeListNode : public HeapObject { |
- public: |
- // Obtain a free-list node from a raw address. This is not a cast because |
- // it does not check nor require that the first word at the address is a map |
- // pointer. |
- static FreeListNode* FromAddress(Address address) { |
- return reinterpret_cast<FreeListNode*>(HeapObject::FromAddress(address)); |
- } |
- |
- static inline bool IsFreeListNode(HeapObject* object); |
- |
- // Set the size in bytes, which can be read with HeapObject::Size(). This |
- // function also writes a map to the first word of the block so that it |
- // looks like a heap object to the garbage collector and heap iteration |
- // functions. |
- void set_size(Heap* heap, int size_in_bytes); |
- |
- // Accessors for the next field. |
- inline FreeListNode* next(); |
- inline FreeListNode** next_address(); |
- inline void set_next(FreeListNode* next); |
- |
- inline void Zap(); |
- |
- static inline FreeListNode* cast(Object* object) { |
- return reinterpret_cast<FreeListNode*>(object); |
- } |
- |
- private: |
- static const int kNextOffset = POINTER_SIZE_ALIGN(FreeSpace::kHeaderSize); |
- |
- DISALLOW_IMPLICIT_CONSTRUCTORS(FreeListNode); |
-}; |
- |
// The free list category holds a pointer to the top element and a pointer to |
// the end element of the linked list of free memory blocks. |
@@ -1461,27 +1422,26 @@ class FreeListCategory { |
void Reset(); |
- void Free(FreeListNode* node, int size_in_bytes); |
+ void Free(FreeSpace* node, int size_in_bytes); |
- FreeListNode* PickNodeFromList(int* node_size); |
- FreeListNode* PickNodeFromList(int size_in_bytes, int* node_size); |
+ FreeSpace* PickNodeFromList(int* node_size); |
+ FreeSpace* PickNodeFromList(int size_in_bytes, int* node_size); |
intptr_t EvictFreeListItemsInList(Page* p); |
bool ContainsPageFreeListItemsInList(Page* p); |
void RepairFreeList(Heap* heap); |
- FreeListNode* top() const { |
- return reinterpret_cast<FreeListNode*>(base::NoBarrier_Load(&top_)); |
+ FreeSpace* top() const { |
+ return reinterpret_cast<FreeSpace*>(base::NoBarrier_Load(&top_)); |
} |
- void set_top(FreeListNode* top) { |
+ void set_top(FreeSpace* top) { |
base::NoBarrier_Store(&top_, reinterpret_cast<base::AtomicWord>(top)); |
} |
- FreeListNode** GetEndAddress() { return &end_; } |
- FreeListNode* end() const { return end_; } |
- void set_end(FreeListNode* end) { end_ = end; } |
+ FreeSpace* end() const { return end_; } |
+ void set_end(FreeSpace* end) { end_ = end; } |
int* GetAvailableAddress() { return &available_; } |
int available() const { return available_; } |
@@ -1497,9 +1457,9 @@ class FreeListCategory { |
#endif |
private: |
- // top_ points to the top FreeListNode* in the free list category. |
+ // top_ points to the top FreeSpace* in the free list category. |
base::AtomicWord top_; |
- FreeListNode* end_; |
+ FreeSpace* end_; |
base::Mutex mutex_; |
// Total available bytes in all blocks of this free list category. |
@@ -1596,17 +1556,18 @@ class FreeList { |
FreeListCategory* large_list() { return &large_list_; } |
FreeListCategory* huge_list() { return &huge_list_; } |
+ static const int kSmallListMin = 0x20 * kPointerSize; |
+ |
private: |
// The size range of blocks, in bytes. |
static const int kMinBlockSize = 3 * kPointerSize; |
static const int kMaxBlockSize = Page::kMaxRegularHeapObjectSize; |
- FreeListNode* FindNodeFor(int size_in_bytes, int* node_size); |
+ FreeSpace* FindNodeFor(int size_in_bytes, int* node_size); |
PagedSpace* owner_; |
Heap* heap_; |
- static const int kSmallListMin = 0x20 * kPointerSize; |
static const int kSmallListMax = 0xff * kPointerSize; |
static const int kMediumListMax = 0x7ff * kPointerSize; |
static const int kLargeListMax = 0x3fff * kPointerSize; |
@@ -1702,7 +1663,7 @@ class PagedSpace : public Space { |
// During boot the free_space_map is created, and afterwards we may need |
// to write it into the free list nodes that were already created. |
- void RepairFreeListsAfterBoot(); |
+ void RepairFreeListsAfterDeserialization(); |
// Prepares for a mark-compact GC. |
void PrepareForMarkCompact(); |
@@ -1909,8 +1870,6 @@ class PagedSpace : public Space { |
// Maximum capacity of this space. |
intptr_t max_capacity_; |
- intptr_t SizeOfFirstPage(); |
- |
// Accounting information for this space. |
AllocationStats accounting_stats_; |