OLD | NEW |
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 #ifndef VM_STACK_FRAME_H_ | 5 #ifndef VM_STACK_FRAME_H_ |
6 #define VM_STACK_FRAME_H_ | 6 #define VM_STACK_FRAME_H_ |
7 | 7 |
8 #include "vm/allocation.h" | 8 #include "vm/allocation.h" |
9 #include "vm/object.h" | 9 #include "vm/object.h" |
10 #include "vm/stub_code.h" | 10 #include "vm/stub_code.h" |
(...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
218 } | 218 } |
219 return frame; | 219 return frame; |
220 } | 220 } |
221 | 221 |
222 private: | 222 private: |
223 StackFrameIterator frames_; | 223 StackFrameIterator frames_; |
224 | 224 |
225 DISALLOW_COPY_AND_ASSIGN(DartFrameIterator); | 225 DISALLOW_COPY_AND_ASSIGN(DartFrameIterator); |
226 }; | 226 }; |
227 | 227 |
| 228 |
| 229 // Iterator for iterating over all inlined dart functions in an optimized |
| 230 // dart frame (the iteration includes the function that is inlining the |
| 231 // other functions). |
| 232 class InlinedFunctionsInDartFrameIterator : public ValueObject { |
| 233 public: |
| 234 explicit InlinedFunctionsInDartFrameIterator(StackFrame* frame); |
| 235 RawFunction* GetNextFunction(uword* pc); |
| 236 |
| 237 private: |
| 238 intptr_t index_; |
| 239 StackFrame* frame_; |
| 240 Function& func_; |
| 241 DeoptInfo& deopt_info_; |
| 242 Array& object_table_; |
| 243 |
| 244 DISALLOW_COPY_AND_ASSIGN(InlinedFunctionsInDartFrameIterator); |
| 245 }; |
| 246 |
228 } // namespace dart | 247 } // namespace dart |
229 | 248 |
230 #endif // VM_STACK_FRAME_H_ | 249 #endif // VM_STACK_FRAME_H_ |
OLD | NEW |