| 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_; | 
| }; | 
|  | 
|  | 
|  |