Index: src/heap.cc |
diff --git a/src/heap.cc b/src/heap.cc |
index dff217a99118fdc4c47497d10450d18fa60ae746..fa13c4dd01453365b3fa74c7de6188cb4ec9d3e4 100644 |
--- a/src/heap.cc |
+++ b/src/heap.cc |
@@ -5353,25 +5353,16 @@ MaybeObject* Heap::AllocateRawOneByteString(int length, |
if (length < 0 || length > SeqOneByteString::kMaxLength) { |
return Failure::OutOfMemoryException(0xb); |
} |
- |
int size = SeqOneByteString::SizeFor(length); |
ASSERT(size <= SeqOneByteString::kMaxSize); |
- |
AllocationSpace space = (pretenure == TENURED) ? OLD_DATA_SPACE : NEW_SPACE; |
AllocationSpace retry_space = OLD_DATA_SPACE; |
- if (space == NEW_SPACE) { |
- if (size > kMaxObjectSizeInNewSpace) { |
- // Allocate in large object space, retry space will be ignored. |
- space = LO_SPACE; |
- } else if (size > Page::kMaxNonCodeHeapObjectSize) { |
- // Allocate in new space, retry in large object space. |
- retry_space = LO_SPACE; |
- } |
- } else if (space == OLD_DATA_SPACE && |
- size > Page::kMaxNonCodeHeapObjectSize) { |
+ if (size > Page::kMaxNonCodeHeapObjectSize) { |
+ // Allocate in large object space, retry space will be ignored. |
space = LO_SPACE; |
} |
+ |
Object* result; |
{ MaybeObject* maybe_result = AllocateRaw(size, space, retry_space); |
if (!maybe_result->ToObject(&result)) return maybe_result; |
@@ -5397,18 +5388,11 @@ MaybeObject* Heap::AllocateRawTwoByteString(int length, |
AllocationSpace space = (pretenure == TENURED) ? OLD_DATA_SPACE : NEW_SPACE; |
AllocationSpace retry_space = OLD_DATA_SPACE; |
- if (space == NEW_SPACE) { |
- if (size > kMaxObjectSizeInNewSpace) { |
- // Allocate in large object space, retry space will be ignored. |
- space = LO_SPACE; |
- } else if (size > Page::kMaxNonCodeHeapObjectSize) { |
- // Allocate in new space, retry in large object space. |
- retry_space = LO_SPACE; |
- } |
- } else if (space == OLD_DATA_SPACE && |
- size > Page::kMaxNonCodeHeapObjectSize) { |
+ if (size > Page::kMaxNonCodeHeapObjectSize) { |
+ // Allocate in large object space, retry space will be ignored. |
space = LO_SPACE; |
} |
+ |
Object* result; |
{ MaybeObject* maybe_result = AllocateRaw(size, space, retry_space); |
if (!maybe_result->ToObject(&result)) return maybe_result; |
@@ -5482,7 +5466,7 @@ MaybeObject* Heap::AllocateRawFixedArray(int length) { |
if (always_allocate()) return AllocateFixedArray(length, TENURED); |
// Allocate the raw data for a fixed array. |
int size = FixedArray::SizeFor(length); |
- return size <= kMaxObjectSizeInNewSpace |
+ return size <= Page::kMaxNonCodeHeapObjectSize |
? new_space_.AllocateRaw(size) |
: lo_space_->AllocateRaw(size, NOT_EXECUTABLE); |
} |
@@ -5553,22 +5537,16 @@ MaybeObject* Heap::AllocateRawFixedArray(int length, PretenureFlag pretenure) { |
if (length < 0 || length > FixedArray::kMaxLength) { |
return Failure::OutOfMemoryException(0xe); |
} |
- |
+ int size = FixedArray::SizeFor(length); |
AllocationSpace space = |
(pretenure == TENURED) ? OLD_POINTER_SPACE : NEW_SPACE; |
- int size = FixedArray::SizeFor(length); |
- if (space == NEW_SPACE && size > kMaxObjectSizeInNewSpace) { |
- // Too big for new space. |
- space = LO_SPACE; |
- } else if (space == OLD_POINTER_SPACE && |
- size > Page::kMaxNonCodeHeapObjectSize) { |
- // Too big for old pointer space. |
+ AllocationSpace retry_space = OLD_POINTER_SPACE; |
+ |
+ if (size > Page::kMaxNonCodeHeapObjectSize) { |
+ // Allocate in large object space, retry space will be ignored. |
space = LO_SPACE; |
} |
- AllocationSpace retry_space = |
- (size <= Page::kMaxNonCodeHeapObjectSize) ? OLD_POINTER_SPACE : LO_SPACE; |
- |
return AllocateRaw(size, space, retry_space); |
} |
@@ -5686,27 +5664,19 @@ MaybeObject* Heap::AllocateRawFixedDoubleArray(int length, |
if (length < 0 || length > FixedDoubleArray::kMaxLength) { |
return Failure::OutOfMemoryException(0xf); |
} |
- |
- AllocationSpace space = |
- (pretenure == TENURED) ? OLD_DATA_SPACE : NEW_SPACE; |
int size = FixedDoubleArray::SizeFor(length); |
+ AllocationSpace space = (pretenure == TENURED) ? OLD_DATA_SPACE : NEW_SPACE; |
+ AllocationSpace retry_space = OLD_DATA_SPACE; |
#ifndef V8_HOST_ARCH_64_BIT |
size += kPointerSize; |
#endif |
- if (space == NEW_SPACE && size > kMaxObjectSizeInNewSpace) { |
- // Too big for new space. |
- space = LO_SPACE; |
- } else if (space == OLD_DATA_SPACE && |
- size > Page::kMaxNonCodeHeapObjectSize) { |
- // Too big for old data space. |
+ if (size > Page::kMaxNonCodeHeapObjectSize) { |
+ // Allocate in large object space, retry space will be ignored. |
space = LO_SPACE; |
} |
- AllocationSpace retry_space = |
- (size <= Page::kMaxNonCodeHeapObjectSize) ? OLD_DATA_SPACE : LO_SPACE; |
- |
HeapObject* object; |
{ MaybeObject* maybe_object = AllocateRaw(size, space, retry_space); |
if (!maybe_object->To<HeapObject>(&object)) return maybe_object; |