Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(372)

Unified Diff: src/spaces.cc

Issue 17162002: Version 3.19.17. (Closed) Base URL: https://v8.googlecode.com/svn/trunk
Patch Set: Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/spaces.h ('k') | src/version.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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;
}
« no previous file with comments | « src/spaces.h ('k') | src/version.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698