| Index: src/frames.h
|
| diff --git a/src/frames.h b/src/frames.h
|
| index f09c24a3fbf43198d75bf07e75cfeed70e6c63e6..53668d09d98e9a89f1f01a6f6ea73184a45e0bf8 100644
|
| --- a/src/frames.h
|
| +++ b/src/frames.h
|
| @@ -797,10 +797,10 @@ class StackFrameIterator BASE_EMBEDDED {
|
| bool done() const { return frame_ == NULL; }
|
| void Advance() { (this->*advance_)(); }
|
|
|
| + private:
|
| // Go back to the first frame.
|
| void Reset();
|
|
|
| - private:
|
| Isolate* isolate_;
|
| #define DECLARE_SINGLETON(ignore, type) type type##_;
|
| STACK_FRAME_TYPE_LIST(DECLARE_SINGLETON)
|
| @@ -832,34 +832,12 @@ class StackFrameIterator BASE_EMBEDDED {
|
|
|
|
|
| // Iterator that supports iterating through all JavaScript frames.
|
| -template<typename Iterator>
|
| -class JavaScriptFrameIteratorTemp BASE_EMBEDDED {
|
| +class JavaScriptFrameIterator BASE_EMBEDDED {
|
| public:
|
| - inline explicit JavaScriptFrameIteratorTemp(Isolate* isolate);
|
| -
|
| - inline JavaScriptFrameIteratorTemp(Isolate* isolate, ThreadLocalTop* top);
|
| -
|
| + inline explicit JavaScriptFrameIterator(Isolate* isolate);
|
| + inline JavaScriptFrameIterator(Isolate* isolate, ThreadLocalTop* top);
|
| // Skip frames until the frame with the given id is reached.
|
| - explicit JavaScriptFrameIteratorTemp(StackFrame::Id id) { AdvanceToId(id); }
|
| -
|
| - inline JavaScriptFrameIteratorTemp(Isolate* isolate, StackFrame::Id id);
|
| -
|
| - JavaScriptFrameIteratorTemp(Address fp,
|
| - Address sp,
|
| - Address low_bound,
|
| - Address high_bound) :
|
| - iterator_(fp, sp, low_bound, high_bound) {
|
| - if (!done()) Advance();
|
| - }
|
| -
|
| - JavaScriptFrameIteratorTemp(Isolate* isolate,
|
| - Address fp,
|
| - Address sp,
|
| - Address low_bound,
|
| - Address high_bound) :
|
| - iterator_(isolate, fp, sp, low_bound, high_bound) {
|
| - if (!done()) Advance();
|
| - }
|
| + JavaScriptFrameIterator(Isolate* isolate, StackFrame::Id id);
|
|
|
| inline JavaScriptFrame* frame() const;
|
|
|
| @@ -871,19 +849,11 @@ class JavaScriptFrameIteratorTemp BASE_EMBEDDED {
|
| // arguments.
|
| void AdvanceToArgumentsFrame();
|
|
|
| - // Go back to the first frame.
|
| - void Reset();
|
| -
|
| private:
|
| - inline void AdvanceToId(StackFrame::Id id);
|
| -
|
| - Iterator iterator_;
|
| + StackFrameIterator iterator_;
|
| };
|
|
|
|
|
| -typedef JavaScriptFrameIteratorTemp<StackFrameIterator> JavaScriptFrameIterator;
|
| -
|
| -
|
| // NOTE: The stack trace frame iterator is an iterator that only
|
| // traverse proper JavaScript frames; that is JavaScript frames that
|
| // have proper JavaScript functions. This excludes the problematic
|
| @@ -913,7 +883,6 @@ class SafeStackFrameIterator BASE_EMBEDDED {
|
| bool done() const { return iteration_done_ ? true : iterator_.done(); }
|
|
|
| void Advance();
|
| - void Reset();
|
|
|
| static bool is_active(Isolate* isolate);
|
|
|
| @@ -978,16 +947,21 @@ class SafeStackFrameIterator BASE_EMBEDDED {
|
| };
|
|
|
|
|
| -typedef JavaScriptFrameIteratorTemp<SafeStackFrameIterator>
|
| - SafeJavaScriptFrameIterator;
|
| +class SafeStackTraceFrameIterator BASE_EMBEDDED {
|
| + public:
|
| + SafeStackTraceFrameIterator(Isolate* isolate,
|
| + Address fp,
|
| + Address sp,
|
| + Address low_bound,
|
| + Address high_bound);
|
|
|
| + inline JavaScriptFrame* frame() const;
|
|
|
| -class SafeStackTraceFrameIterator: public SafeJavaScriptFrameIterator {
|
| - public:
|
| - explicit SafeStackTraceFrameIterator(Isolate* isolate,
|
| - Address fp, Address sp,
|
| - Address low_bound, Address high_bound);
|
| + bool done() const { return iterator_.done(); }
|
| void Advance();
|
| +
|
| + private:
|
| + SafeStackFrameIterator iterator_;
|
| };
|
|
|
|
|
|
|