Index: src/debug/liveedit.cc |
diff --git a/src/debug/liveedit.cc b/src/debug/liveedit.cc |
index d192b755d72c551fb08e4043f824347f64355868..f1f3f2391a60403c0107af3d5257b79a92c4295d 100644 |
--- a/src/debug/liveedit.cc |
+++ b/src/debug/liveedit.cc |
@@ -811,10 +811,6 @@ bool LiveEdit::SetAfterBreakTarget(Debug* debug) { |
switch (debug->thread_local_.frame_drop_mode_) { |
case FRAMES_UNTOUCHED: |
return false; |
- case FRAME_DROPPED_IN_IC_CALL: |
- // We must have been calling IC stub. Do not go there anymore. |
- code = isolate->builtins()->builtin(Builtins::kPlainReturn_LiveEdit); |
- break; |
case FRAME_DROPPED_IN_DEBUG_SLOT_CALL: |
// Debug break slot stub does not return normally, instead it manually |
// cleans the stack and jumps. We should patch the jump address. |
@@ -1491,17 +1487,13 @@ static bool FixTryCatchHandler(StackFrame* top_frame, |
// a. successful work of frame dropper code which eventually gets control, |
// b. being compatible with regular stack structure for various stack |
// iterators. |
-// Returns address of stack allocated pointer to restarted function, |
-// the value that is called 'restarter_frame_function_pointer'. The value |
-// at this address (possibly updated by GC) may be used later when preparing |
-// 'step in' operation. |
// Frame structure (conforms InternalFrame structure): |
// -- code |
// -- SMI maker |
// -- function (slot is called "context") |
// -- frame base |
-static Object** SetUpFrameDropperFrame(StackFrame* bottom_js_frame, |
- Handle<Code> code) { |
+static void SetUpFrameDropperFrame(StackFrame* bottom_js_frame, |
+ Handle<Code> code) { |
DCHECK(bottom_js_frame->is_java_script()); |
Address fp = bottom_js_frame->fp(); |
@@ -1513,9 +1505,6 @@ static Object** SetUpFrameDropperFrame(StackFrame* bottom_js_frame, |
Memory::Object_at(fp + InternalFrameConstants::kCodeOffset) = *code; |
Memory::Object_at(fp + StandardFrameConstants::kMarkerOffset) = |
Smi::FromInt(StackFrame::INTERNAL); |
- |
- return reinterpret_cast<Object**>(&Memory::Object_at( |
- fp + StandardFrameConstants::kContextOffset)); |
} |
@@ -1523,11 +1512,9 @@ static Object** SetUpFrameDropperFrame(StackFrame* bottom_js_frame, |
// frames in range. Anyway the bottom frame is restarted rather than dropped, |
// and therefore has to be a JavaScript frame. |
// Returns error message or NULL. |
-static const char* DropFrames(Vector<StackFrame*> frames, |
- int top_frame_index, |
+static const char* DropFrames(Vector<StackFrame*> frames, int top_frame_index, |
int bottom_js_frame_index, |
- LiveEdit::FrameDropMode* mode, |
- Object*** restarter_frame_function_pointer) { |
+ LiveEdit::FrameDropMode* mode) { |
if (!LiveEdit::kFrameDropperSupported) { |
return "Stack manipulations are not supported in this architecture."; |
} |
@@ -1542,12 +1529,8 @@ static const char* DropFrames(Vector<StackFrame*> frames, |
Isolate* isolate = bottom_js_frame->isolate(); |
Code* pre_top_frame_code = pre_top_frame->LookupCode(); |
bool frame_has_padding = true; |
- if (pre_top_frame_code->is_inline_cache_stub() && |
- pre_top_frame_code->is_debug_stub()) { |
- // OK, we can drop inline cache calls. |
- *mode = LiveEdit::FRAME_DROPPED_IN_IC_CALL; |
- } else if (pre_top_frame_code == |
- isolate->builtins()->builtin(Builtins::kSlot_DebugBreak)) { |
+ if (pre_top_frame_code == |
+ isolate->builtins()->builtin(Builtins::kSlot_DebugBreak)) { |
// OK, we can drop debug break slot. |
*mode = LiveEdit::FRAME_DROPPED_IN_DEBUG_SLOT_CALL; |
} else if (pre_top_frame_code == |
@@ -1641,10 +1624,7 @@ static const char* DropFrames(Vector<StackFrame*> frames, |
*top_frame_pc_address = code->entry(); |
pre_top_frame->SetCallerFp(bottom_js_frame->fp()); |
- *restarter_frame_function_pointer = |
- SetUpFrameDropperFrame(bottom_js_frame, code); |
- |
- DCHECK((**restarter_frame_function_pointer)->IsJSFunction()); |
+ SetUpFrameDropperFrame(bottom_js_frame, code); |
for (Address a = unused_stack_top; |
a < unused_stack_bottom; |
@@ -1805,10 +1785,8 @@ static const char* DropActivationsInActiveThreadImpl(Isolate* isolate, |
} |
LiveEdit::FrameDropMode drop_mode = LiveEdit::FRAMES_UNTOUCHED; |
- Object** restarter_frame_function_pointer = NULL; |
- const char* error_message = DropFrames(frames, top_frame_index, |
- bottom_js_frame_index, &drop_mode, |
- &restarter_frame_function_pointer); |
+ const char* error_message = |
+ DropFrames(frames, top_frame_index, bottom_js_frame_index, &drop_mode); |
if (error_message != NULL) { |
return error_message; |
@@ -1822,8 +1800,7 @@ static const char* DropActivationsInActiveThreadImpl(Isolate* isolate, |
break; |
} |
} |
- debug->FramesHaveBeenDropped( |
- new_id, drop_mode, restarter_frame_function_pointer); |
+ debug->FramesHaveBeenDropped(new_id, drop_mode); |
return NULL; |
} |