OLD | NEW |
1 // Copyright 2006-2008 the V8 project authors. All rights reserved. | 1 // Copyright 2006-2008 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
42 class StackHandlerIterator BASE_EMBEDDED { | 42 class StackHandlerIterator BASE_EMBEDDED { |
43 public: | 43 public: |
44 StackHandlerIterator(const StackFrame* frame, StackHandler* handler) | 44 StackHandlerIterator(const StackFrame* frame, StackHandler* handler) |
45 : limit_(frame->fp()), handler_(handler) { | 45 : limit_(frame->fp()), handler_(handler) { |
46 // Make sure the handler has already been unwound to this frame. | 46 // Make sure the handler has already been unwound to this frame. |
47 ASSERT(frame->sp() <= handler->address()); | 47 ASSERT(frame->sp() <= handler->address()); |
48 } | 48 } |
49 | 49 |
50 StackHandler* handler() const { return handler_; } | 50 StackHandler* handler() const { return handler_; } |
51 | 51 |
52 bool done() { return handler_->address() > limit_; } | 52 bool done() { |
| 53 return handler_ == NULL || handler_->address() > limit_; |
| 54 } |
53 void Advance() { | 55 void Advance() { |
54 ASSERT(!done()); | 56 ASSERT(!done()); |
55 handler_ = handler_->next(); | 57 handler_ = handler_->next(); |
56 } | 58 } |
57 | 59 |
58 private: | 60 private: |
59 const Address limit_; | 61 const Address limit_; |
60 StackHandler* handler_; | 62 StackHandler* handler_; |
61 }; | 63 }; |
62 | 64 |
(...skipping 669 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
732 reg_code[i++] = r; | 734 reg_code[i++] = r; |
733 | 735 |
734 ASSERT(i == kNumJSCallerSaved); | 736 ASSERT(i == kNumJSCallerSaved); |
735 } | 737 } |
736 ASSERT(0 <= n && n < kNumJSCallerSaved); | 738 ASSERT(0 <= n && n < kNumJSCallerSaved); |
737 return reg_code[n]; | 739 return reg_code[n]; |
738 } | 740 } |
739 | 741 |
740 | 742 |
741 } } // namespace v8::internal | 743 } } // namespace v8::internal |
OLD | NEW |