Index: src/frames.cc |
diff --git a/src/frames.cc b/src/frames.cc |
index a9bbbede388f9197193412287781fa45b918c9e6..88c723d6932d2eabae3a1bfd86c1604c81fa9d15 100644 |
--- a/src/frames.cc |
+++ b/src/frames.cc |
@@ -86,6 +86,7 @@ StackFrameIterator::StackFrameIterator(bool use_top, Address fp, Address sp) |
if (use_top || fp != NULL) { |
Reset(); |
} |
+ JavaScriptFrame_.DisableHeapAccess(); |
} |
#undef INITIALIZE_SINGLETON |
@@ -231,11 +232,7 @@ bool SafeStackFrameIterator::CanIterateHandles(StackFrame* frame, |
bool SafeStackFrameIterator::IsValidFrame(StackFrame* frame) const { |
- return IsValidStackAddress(frame->sp()) && IsValidStackAddress(frame->fp()) && |
- // JavaScriptFrame uses function shared info to advance, hence it must |
- // point to a valid function object. |
- (!frame->is_java_script() || |
- reinterpret_cast<JavaScriptFrame*>(frame)->is_at_function()); |
+ return IsValidStackAddress(frame->sp()) && IsValidStackAddress(frame->fp()); |
} |
@@ -281,7 +278,7 @@ void SafeStackFrameIterator::Reset() { |
SafeStackTraceFrameIterator::SafeStackTraceFrameIterator( |
Address fp, Address sp, Address low_bound, Address high_bound) : |
SafeJavaScriptFrameIterator(fp, sp, low_bound, high_bound) { |
- if (!done() && !frame()->is_at_function()) Advance(); |
+ if (!done() && !frame()->is_java_script()) Advance(); |
} |
@@ -289,7 +286,7 @@ void SafeStackTraceFrameIterator::Advance() { |
while (true) { |
SafeJavaScriptFrameIterator::Advance(); |
if (done()) return; |
- if (frame()->is_at_function()) return; |
+ if (frame()->is_java_script()) return; |
} |
} |
#endif |