| Index: src/spaces.cc
|
| diff --git a/src/spaces.cc b/src/spaces.cc
|
| index 60293eab3ced369c98ef2bf07b51c4bad6b4e271..8e953e2a556c8d26557445b8835a825b38bfc6d0 100644
|
| --- a/src/spaces.cc
|
| +++ b/src/spaces.cc
|
| @@ -1045,7 +1045,7 @@ intptr_t PagedSpace::SizeOfFirstPage() {
|
| size = 16 * kPointerSize * KB;
|
| break;
|
| case PROPERTY_CELL_SPACE:
|
| - size = 8 * kPointerSize * KB;
|
| + size = 16 * kPointerSize * KB;
|
| break;
|
| case CODE_SPACE:
|
| if (heap()->isolate()->code_range()->exists()) {
|
| @@ -2118,13 +2118,13 @@ FreeListNode* FreeListCategory::PickNodeFromList(int *node_size) {
|
|
|
| while (node != NULL &&
|
| Page::FromAddress(node->address())->IsEvacuationCandidate()) {
|
| - available_ -= reinterpret_cast<FreeSpace*>(node)->Size();
|
| + available_ -= node->Size();
|
| node = node->next();
|
| }
|
|
|
| if (node != NULL) {
|
| set_top(node->next());
|
| - *node_size = reinterpret_cast<FreeSpace*>(node)->Size();
|
| + *node_size = node->Size();
|
| available_ -= *node_size;
|
| } else {
|
| set_top(NULL);
|
| @@ -2138,18 +2138,6 @@ FreeListNode* FreeListCategory::PickNodeFromList(int *node_size) {
|
| }
|
|
|
|
|
| -FreeListNode* FreeListCategory::PickNodeFromList(int size_in_bytes,
|
| - int *node_size) {
|
| - FreeListNode* node = PickNodeFromList(node_size);
|
| - if (node != NULL && *node_size < size_in_bytes) {
|
| - Free(node, *node_size);
|
| - *node_size = 0;
|
| - return NULL;
|
| - }
|
| - return node;
|
| -}
|
| -
|
| -
|
| void FreeListCategory::Free(FreeListNode* node, int size_in_bytes) {
|
| node->set_next(top_);
|
| top_ = node;
|
| @@ -2239,10 +2227,8 @@ FreeListNode* FreeList::FindNodeFor(int size_in_bytes, int* node_size) {
|
| if (size_in_bytes <= kSmallAllocationMax) {
|
| node = small_list_.PickNodeFromList(node_size);
|
| if (node != NULL) {
|
| - ASSERT(size_in_bytes <= *node_size);
|
| page = Page::FromAddress(node->address());
|
| page->add_available_in_small_free_list(-(*node_size));
|
| - ASSERT(IsVeryLong() || available() == SumFreeLists());
|
| return node;
|
| }
|
| }
|
| @@ -2250,10 +2236,8 @@ FreeListNode* FreeList::FindNodeFor(int size_in_bytes, int* node_size) {
|
| if (size_in_bytes <= kMediumAllocationMax) {
|
| node = medium_list_.PickNodeFromList(node_size);
|
| if (node != NULL) {
|
| - ASSERT(size_in_bytes <= *node_size);
|
| page = Page::FromAddress(node->address());
|
| page->add_available_in_medium_free_list(-(*node_size));
|
| - ASSERT(IsVeryLong() || available() == SumFreeLists());
|
| return node;
|
| }
|
| }
|
| @@ -2261,10 +2245,8 @@ FreeListNode* FreeList::FindNodeFor(int size_in_bytes, int* node_size) {
|
| if (size_in_bytes <= kLargeAllocationMax) {
|
| node = large_list_.PickNodeFromList(node_size);
|
| if (node != NULL) {
|
| - ASSERT(size_in_bytes <= *node_size);
|
| page = Page::FromAddress(node->address());
|
| page->add_available_in_large_free_list(-(*node_size));
|
| - ASSERT(IsVeryLong() || available() == SumFreeLists());
|
| return node;
|
| }
|
| }
|
| @@ -2307,37 +2289,10 @@ FreeListNode* FreeList::FindNodeFor(int size_in_bytes, int* node_size) {
|
| if (huge_list_.top() == NULL) {
|
| huge_list_.set_end(NULL);
|
| }
|
| - huge_list_.set_available(huge_list_available);
|
| -
|
| - if (node != NULL) {
|
| - ASSERT(IsVeryLong() || available() == SumFreeLists());
|
| - return node;
|
| - }
|
| -
|
| - if (size_in_bytes <= kSmallListMax) {
|
| - node = small_list_.PickNodeFromList(size_in_bytes, node_size);
|
| - if (node != NULL) {
|
| - ASSERT(size_in_bytes <= *node_size);
|
| - page = Page::FromAddress(node->address());
|
| - page->add_available_in_small_free_list(-(*node_size));
|
| - }
|
| - } else if (size_in_bytes <= kMediumListMax) {
|
| - node = medium_list_.PickNodeFromList(size_in_bytes, node_size);
|
| - if (node != NULL) {
|
| - ASSERT(size_in_bytes <= *node_size);
|
| - page = Page::FromAddress(node->address());
|
| - page->add_available_in_medium_free_list(-(*node_size));
|
| - }
|
| - } else if (size_in_bytes <= kLargeListMax) {
|
| - node = large_list_.PickNodeFromList(size_in_bytes, node_size);
|
| - if (node != NULL) {
|
| - ASSERT(size_in_bytes <= *node_size);
|
| - page = Page::FromAddress(node->address());
|
| - page->add_available_in_large_free_list(-(*node_size));
|
| - }
|
| - }
|
|
|
| + huge_list_.set_available(huge_list_available);
|
| ASSERT(IsVeryLong() || available() == SumFreeLists());
|
| +
|
| return node;
|
| }
|
|
|
|
|