| Index: src/serialize.cc
|
| diff --git a/src/serialize.cc b/src/serialize.cc
|
| index ccba737d15908980fe9d1cdf7a8f425ae0b4be50..763c12f4f576baf7e35ce71342e97110a7d925a0 100644
|
| --- a/src/serialize.cc
|
| +++ b/src/serialize.cc
|
| @@ -337,6 +337,11 @@ void ExternalReferenceTable::PopulateTable() {
|
| 3,
|
| "V8::Random");
|
|
|
| + Add(ExternalReference::delete_handle_scope_extensions().address(),
|
| + RUNTIME_ENTRY,
|
| + 3,
|
| + "HandleScope::DeleteExtensions");
|
| +
|
| // Miscellaneous
|
| Add(ExternalReference::the_hole_value_location().address(),
|
| UNCLASSIFIED,
|
| @@ -457,6 +462,18 @@ void ExternalReferenceTable::PopulateTable() {
|
| UNCLASSIFIED,
|
| 29,
|
| "TranscendentalCache::caches()");
|
| + Add(ExternalReference::handle_scope_next_address().address(),
|
| + UNCLASSIFIED,
|
| + 30,
|
| + "HandleScope::next");
|
| + Add(ExternalReference::handle_scope_limit_address().address(),
|
| + UNCLASSIFIED,
|
| + 31,
|
| + "HandleScope::limit");
|
| + Add(ExternalReference::handle_scope_level_address().address(),
|
| + UNCLASSIFIED,
|
| + 32,
|
| + "HandleScope::level");
|
| }
|
|
|
|
|
| @@ -538,14 +555,16 @@ Address Deserializer::Allocate(int space_index, Space* space, int size) {
|
| if (!SpaceIsLarge(space_index)) {
|
| ASSERT(!SpaceIsPaged(space_index) ||
|
| size <= Page::kPageSize - Page::kObjectStartOffset);
|
| - Object* new_allocation;
|
| + MaybeObject* maybe_new_allocation;
|
| if (space_index == NEW_SPACE) {
|
| - new_allocation = reinterpret_cast<NewSpace*>(space)->AllocateRaw(size);
|
| + maybe_new_allocation =
|
| + reinterpret_cast<NewSpace*>(space)->AllocateRaw(size);
|
| } else {
|
| - new_allocation = reinterpret_cast<PagedSpace*>(space)->AllocateRaw(size);
|
| + maybe_new_allocation =
|
| + reinterpret_cast<PagedSpace*>(space)->AllocateRaw(size);
|
| }
|
| + Object* new_allocation = maybe_new_allocation->ToObjectUnchecked();
|
| HeapObject* new_object = HeapObject::cast(new_allocation);
|
| - ASSERT(!new_object->IsFailure());
|
| address = new_object->address();
|
| high_water_[space_index] = address + size;
|
| } else {
|
| @@ -554,14 +573,14 @@ Address Deserializer::Allocate(int space_index, Space* space, int size) {
|
| LargeObjectSpace* lo_space = reinterpret_cast<LargeObjectSpace*>(space);
|
| Object* new_allocation;
|
| if (space_index == kLargeData) {
|
| - new_allocation = lo_space->AllocateRaw(size);
|
| + new_allocation = lo_space->AllocateRaw(size)->ToObjectUnchecked();
|
| } else if (space_index == kLargeFixedArray) {
|
| - new_allocation = lo_space->AllocateRawFixedArray(size);
|
| + new_allocation =
|
| + lo_space->AllocateRawFixedArray(size)->ToObjectUnchecked();
|
| } else {
|
| ASSERT_EQ(kLargeCode, space_index);
|
| - new_allocation = lo_space->AllocateRawCode(size);
|
| + new_allocation = lo_space->AllocateRawCode(size)->ToObjectUnchecked();
|
| }
|
| - ASSERT(!new_allocation->IsFailure());
|
| HeapObject* new_object = HeapObject::cast(new_allocation);
|
| // Record all large objects in the same space.
|
| address = new_object->address();
|
|
|