| Index: src/frames.cc
|
| diff --git a/src/frames.cc b/src/frames.cc
|
| index 5cd83324c6f9ac4f43f6eb92e6dff916ada77ecd..d7302dea3da0eb9c0c5c9ecb9938ffc53df17e62 100644
|
| --- a/src/frames.cc
|
| +++ b/src/frames.cc
|
| @@ -393,8 +393,19 @@ Code* EntryConstructFrame::code() const {
|
| }
|
|
|
|
|
| +Object*& ExitFrame::code_slot() const {
|
| + const int offset = ExitFrameConstants::kCodeOffset;
|
| + return Memory::Object_at(fp() + offset);
|
| +}
|
| +
|
| +
|
| Code* ExitFrame::code() const {
|
| - return Heap::c_entry_code();
|
| + Object* code = code_slot();
|
| + if (code->IsSmi()) {
|
| + return Heap::c_entry_debug_break_code();
|
| + } else {
|
| + return Code::cast(code);
|
| + }
|
| }
|
|
|
|
|
| @@ -412,11 +423,6 @@ Address ExitFrame::GetCallerStackPointer() const {
|
| }
|
|
|
|
|
| -Code* ExitDebugFrame::code() const {
|
| - return Heap::c_entry_debug_break_code();
|
| -}
|
| -
|
| -
|
| Address StandardFrame::GetExpressionAddress(int n) const {
|
| const int offset = StandardFrameConstants::kExpressionsOffset;
|
| return fp() + offset - n * kPointerSize;
|
|
|