| Index: src/spaces.h
|
| ===================================================================
|
| --- src/spaces.h (revision 2419)
|
| +++ src/spaces.h (working copy)
|
| @@ -302,7 +302,6 @@
|
| virtual int Size() = 0;
|
|
|
| #ifdef DEBUG
|
| - virtual void Verify() = 0;
|
| virtual void Print() = 0;
|
| #endif
|
|
|
| @@ -836,6 +835,13 @@
|
| // Print meta info and objects in this space.
|
| virtual void Print();
|
|
|
| + // Verify integrity of this space.
|
| + virtual void Verify(ObjectVisitor* visitor);
|
| +
|
| + // Overridden by subclasses to verify space-specific object
|
| + // properties (e.g., only maps or free-list nodes are in map space).
|
| + virtual void VerifyObject(HeapObject* obj) {}
|
| +
|
| // Report code object related statistics
|
| void CollectCodeStatistics();
|
| static void ReportCodeStatistics();
|
| @@ -862,6 +868,12 @@
|
| // Relocation information during mark-compact collections.
|
| AllocationInfo mc_forwarding_info_;
|
|
|
| + // Bytes of each page that cannot be allocated. Possibly non-zero
|
| + // for pages in spaces with only fixed-size objects. Always zero
|
| + // for pages in spaces with variable sized objects (those pages are
|
| + // padded with free-list nodes).
|
| + int page_extra_;
|
| +
|
| // Sets allocation pointer to a page bottom.
|
| static void SetAllocationInfo(AllocationInfo* alloc_info, Page* p);
|
|
|
| @@ -1439,6 +1451,7 @@
|
| AllocationSpace id,
|
| Executability executable)
|
| : PagedSpace(max_capacity, id, executable), free_list_(id) {
|
| + page_extra_ = 0;
|
| }
|
|
|
| // The bytes available on the free list (ie, not above the linear allocation
|
| @@ -1467,9 +1480,6 @@
|
| virtual void MCCommitRelocationInfo();
|
|
|
| #ifdef DEBUG
|
| - // Verify integrity of this space.
|
| - virtual void Verify();
|
| -
|
| // Reports statistics for the space
|
| void ReportStatistics();
|
| // Dump the remembered sets in the space to stdout.
|
| @@ -1505,8 +1515,9 @@
|
| : PagedSpace(max_capacity, id, NOT_EXECUTABLE),
|
| object_size_in_bytes_(object_size_in_bytes),
|
| name_(name),
|
| - free_list_(id, object_size_in_bytes),
|
| - page_extra_(Page::kObjectAreaSize % object_size_in_bytes) { }
|
| + free_list_(id, object_size_in_bytes) {
|
| + page_extra_ = Page::kObjectAreaSize % object_size_in_bytes;
|
| + }
|
|
|
| // The top of allocation in a page in this space. Undefined if page is unused.
|
| virtual Address PageAllocationTop(Page* page) {
|
| @@ -1530,12 +1541,6 @@
|
| virtual void MCCommitRelocationInfo();
|
|
|
| #ifdef DEBUG
|
| - // Verify integrity of this space.
|
| - virtual void Verify();
|
| -
|
| - // Implement by subclasses to verify an actual object in the space.
|
| - virtual void VerifyObject(HeapObject* obj) = 0;
|
| -
|
| // Reports statistic info of the space
|
| void ReportStatistics();
|
|
|
| @@ -1560,9 +1565,6 @@
|
|
|
| // The space's free list.
|
| FixedSizeFreeList free_list_;
|
| -
|
| - // Bytes of each page that cannot be allocated.
|
| - int page_extra_;
|
| };
|
|
|
|
|
|
|