| Index: src/frames.cc
|
| diff --git a/src/frames.cc b/src/frames.cc
|
| index b7fba653d527eb3d788e72b5db64f618a60f2cb0..61fab874d6148bcbc7e3d711948e172c91cf13d4 100644
|
| --- a/src/frames.cc
|
| +++ b/src/frames.cc
|
| @@ -1534,7 +1534,7 @@ void StackHandler::Unwind(Isolate* isolate,
|
| FixedArray* array,
|
| int offset,
|
| int previous_handler_offset) const {
|
| - STATIC_ASSERT(StackHandlerConstants::kSlotCount >= 5);
|
| + STATIC_ASSERT(StackHandlerConstants::kSlotCount >= 4);
|
| DCHECK_LE(0, offset);
|
| DCHECK_GE(array->length(), offset + StackHandlerConstants::kSlotCount);
|
| // Unwinding a stack handler into an array chains it in the opposite
|
| @@ -1542,10 +1542,9 @@ void StackHandler::Unwind(Isolate* isolate,
|
| // handlers can be later re-wound in the correct order. Decode the "state"
|
| // slot into "index" and "kind" and store them separately, using the fp slot.
|
| array->set(offset, Smi::FromInt(previous_handler_offset)); // next
|
| - array->set(offset + 1, *code_address()); // code
|
| - array->set(offset + 2, Smi::FromInt(static_cast<int>(index()))); // state
|
| - array->set(offset + 3, *context_address()); // context
|
| - array->set(offset + 4, Smi::FromInt(static_cast<int>(kind()))); // fp
|
| + array->set(offset + 1, Smi::FromInt(static_cast<int>(index()))); // state
|
| + array->set(offset + 2, *context_address()); // context
|
| + array->set(offset + 3, Smi::FromInt(static_cast<int>(kind()))); // fp
|
|
|
| *isolate->handler_address() = next()->address();
|
| }
|
| @@ -1555,21 +1554,19 @@ int StackHandler::Rewind(Isolate* isolate,
|
| FixedArray* array,
|
| int offset,
|
| Address fp) {
|
| - STATIC_ASSERT(StackHandlerConstants::kSlotCount >= 5);
|
| + STATIC_ASSERT(StackHandlerConstants::kSlotCount >= 4);
|
| DCHECK_LE(0, offset);
|
| DCHECK_GE(array->length(), offset + StackHandlerConstants::kSlotCount);
|
| Smi* prev_handler_offset = Smi::cast(array->get(offset));
|
| - Code* code = Code::cast(array->get(offset + 1));
|
| - Smi* smi_index = Smi::cast(array->get(offset + 2));
|
| - Object* context = array->get(offset + 3);
|
| - Smi* smi_kind = Smi::cast(array->get(offset + 4));
|
| + Smi* smi_index = Smi::cast(array->get(offset + 1));
|
| + Object* context = array->get(offset + 2);
|
| + Smi* smi_kind = Smi::cast(array->get(offset + 3));
|
|
|
| unsigned state = KindField::encode(static_cast<Kind>(smi_kind->value())) |
|
| IndexField::encode(static_cast<unsigned>(smi_index->value()));
|
|
|
| Memory::Address_at(address() + StackHandlerConstants::kNextOffset) =
|
| *isolate->handler_address();
|
| - Memory::Object_at(address() + StackHandlerConstants::kCodeOffset) = code;
|
| Memory::uintptr_at(address() + StackHandlerConstants::kStateOffset) = state;
|
| Memory::Object_at(address() + StackHandlerConstants::kContextOffset) =
|
| context;
|
|
|