Index: src/spaces.h |
diff --git a/src/spaces.h b/src/spaces.h |
index 358555b5110ef62e6ded99f0430c7ab13e9fb9ad..bd939d1e4465705eda89ff01303401b8b038c8cb 100644 |
--- a/src/spaces.h |
+++ b/src/spaces.h |
@@ -1721,11 +1721,11 @@ class FreeListNode: public HeapObject { |
// 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(int size_in_bytes); |
+ void set_size(Heap* heap, int size_in_bytes); |
// Accessors for the next field. |
- inline Address next(); |
- inline void set_next(Address next); |
+ inline Address next(Heap* heap); |
+ inline void set_next(Heap* heap, Address next); |
private: |
static const int kNextOffset = POINTER_SIZE_ALIGN(ByteArray::kHeaderSize); |
@@ -1737,7 +1737,7 @@ class FreeListNode: public HeapObject { |
// The free list for the old space. |
class OldSpaceFreeList BASE_EMBEDDED { |
public: |
- explicit OldSpaceFreeList(AllocationSpace owner); |
+ OldSpaceFreeList(Heap* heap, AllocationSpace owner); |
// Clear the free list. |
void Reset(); |
@@ -1767,6 +1767,8 @@ class OldSpaceFreeList BASE_EMBEDDED { |
static const int kMinBlockSize = 2 * kPointerSize; |
static const int kMaxBlockSize = Page::kMaxHeapObjectSize; |
+ Heap* heap_; |
+ |
// The identity of the owning space, for building allocation Failure |
// objects. |
AllocationSpace owner_; |
@@ -1841,7 +1843,7 @@ class OldSpaceFreeList BASE_EMBEDDED { |
// The free list for the map space. |
class FixedSizeFreeList BASE_EMBEDDED { |
public: |
- FixedSizeFreeList(AllocationSpace owner, int object_size); |
+ FixedSizeFreeList(Heap* heap, AllocationSpace owner, int object_size); |
// Clear the free list. |
void Reset(); |
@@ -1862,6 +1864,9 @@ class FixedSizeFreeList BASE_EMBEDDED { |
void MarkNodes(); |
private: |
+ |
+ Heap* heap_; |
+ |
// Available bytes on the free list. |
intptr_t available_; |
@@ -1893,7 +1898,8 @@ class OldSpace : public PagedSpace { |
intptr_t max_capacity, |
AllocationSpace id, |
Executability executable) |
- : PagedSpace(heap, max_capacity, id, executable), free_list_(id) { |
+ : PagedSpace(heap, max_capacity, id, executable), |
+ free_list_(heap, id) { |
page_extra_ = 0; |
} |
@@ -1970,7 +1976,7 @@ class FixedSpace : public PagedSpace { |
: PagedSpace(heap, max_capacity, id, NOT_EXECUTABLE), |
object_size_in_bytes_(object_size_in_bytes), |
name_(name), |
- free_list_(id, object_size_in_bytes) { |
+ free_list_(heap, id, object_size_in_bytes) { |
page_extra_ = Page::kObjectAreaSize % object_size_in_bytes; |
} |