Index: runtime/lib/stacktrace.cc |
diff --git a/runtime/lib/stacktrace.cc b/runtime/lib/stacktrace.cc |
index 3e02ca997d1a2174fe926b782a009079d3866189..6c40ecc58870e8d22bbbea2a8a629c80eeb63206 100644 |
--- a/runtime/lib/stacktrace.cc |
+++ b/runtime/lib/stacktrace.cc |
@@ -38,17 +38,13 @@ static void IterateFrames(const GrowableObjectArray& code_list, |
ASSERT(frame != NULL); // We expect to find a dart invocation frame. |
Code& code = Code::Handle(); |
Smi& offset = Smi::Handle(); |
- bool catch_frame_skipped = false; // Tracks if catch frame has been skipped. |
+ intptr_t frames_to_skip = 2; // _setupFullStackTrace and the catch frame. |
while (frame != NULL) { |
if (frame->IsDartFrame()) { |
code = frame->LookupDartCode(); |
offset = Smi::New(frame->pc() - code.EntryPoint()); |
- if (!catch_frame_skipped) { |
- const Function& func = Function::Handle(code.function()); |
- // Skip over hidden native, and mark first visible frame as catch frame. |
- if (func.is_visible()) { |
- catch_frame_skipped = true; |
- } |
+ if (frames_to_skip > 0) { |
+ frames_to_skip--; |
} else { |
code_list.Add(code); |
pc_offset_list.Add(offset); |