| Index: src/liveedit.cc
|
| diff --git a/src/liveedit.cc b/src/liveedit.cc
|
| index 04631a3f7cae14a07ccf9b70b41c51f3eeadc383..346d9ea22d1c4448173a2f8545f4a0a869e9671c 100644
|
| --- a/src/liveedit.cc
|
| +++ b/src/liveedit.cc
|
| @@ -1188,7 +1188,8 @@ static bool FixTryCatchHandler(StackFrame* top_frame,
|
| static const char* DropFrames(Vector<StackFrame*> frames,
|
| int top_frame_index,
|
| int bottom_js_frame_index,
|
| - Debug::FrameDropMode* mode) {
|
| + Debug::FrameDropMode* mode,
|
| + Object*** restarter_frame_function_pointer) {
|
| if (Debug::kFrameDropperFrameSize < 0) {
|
| return "Stack manipulations are not supported in this architecture.";
|
| }
|
| @@ -1238,7 +1239,10 @@ static const char* DropFrames(Vector<StackFrame*> frames,
|
| top_frame->set_pc(code->entry());
|
| pre_top_frame->SetCallerFp(bottom_js_frame->fp());
|
|
|
| - Debug::SetUpFrameDropperFrame(bottom_js_frame, code);
|
| + *restarter_frame_function_pointer =
|
| + Debug::SetUpFrameDropperFrame(bottom_js_frame, code);
|
| +
|
| + ASSERT((**restarter_frame_function_pointer)->IsJSFunction());
|
|
|
| for (Address a = unused_stack_top;
|
| a < unused_stack_bottom;
|
| @@ -1328,8 +1332,10 @@ static const char* DropActivationsInActiveThread(
|
| }
|
|
|
| Debug::FrameDropMode drop_mode = Debug::FRAMES_UNTOUCHED;
|
| + Object** restarter_frame_function_pointer = NULL;
|
| const char* error_message = DropFrames(frames, top_frame_index,
|
| - bottom_js_frame_index, &drop_mode);
|
| + bottom_js_frame_index, &drop_mode,
|
| + &restarter_frame_function_pointer);
|
|
|
| if (error_message != NULL) {
|
| return error_message;
|
| @@ -1343,7 +1349,8 @@ static const char* DropActivationsInActiveThread(
|
| break;
|
| }
|
| }
|
| - Debug::FramesHaveBeenDropped(new_id, drop_mode);
|
| + Debug::FramesHaveBeenDropped(new_id, drop_mode,
|
| + restarter_frame_function_pointer);
|
|
|
| // Replace "blocked on active" with "replaced on active" status.
|
| for (int i = 0; i < array_len; i++) {
|
|
|