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 RUNTIME_VM_EXCEPTIONS_H_ | 5 #ifndef RUNTIME_VM_EXCEPTIONS_H_ |
6 #define RUNTIME_VM_EXCEPTIONS_H_ | 6 #define RUNTIME_VM_EXCEPTIONS_H_ |
7 | 7 |
8 #include "vm/allocation.h" | 8 #include "vm/allocation.h" |
9 #include "vm/token_position.h" | 9 #include "vm/token_position.h" |
10 | 10 |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
95 // The index into the ExceptionHandlers table corresponds to | 95 // The index into the ExceptionHandlers table corresponds to |
96 // the try_index of the handler. | 96 // the try_index of the handler. |
97 struct ExceptionHandlerInfo { | 97 struct ExceptionHandlerInfo { |
98 uint32_t handler_pc_offset; // PC offset value of handler. | 98 uint32_t handler_pc_offset; // PC offset value of handler. |
99 int16_t outer_try_index; // Try block index of enclosing try block. | 99 int16_t outer_try_index; // Try block index of enclosing try block. |
100 int8_t needs_stacktrace; // True if a stacktrace is needed. | 100 int8_t needs_stacktrace; // True if a stacktrace is needed. |
101 int8_t has_catch_all; // Catches all exceptions. | 101 int8_t has_catch_all; // Catches all exceptions. |
102 int8_t is_generated; // True if this is a generated handler. | 102 int8_t is_generated; // True if this is a generated handler. |
103 }; | 103 }; |
104 | 104 |
105 | |
106 class CatchEntryState { | 105 class CatchEntryState { |
107 public: | 106 public: |
108 enum { kCatchEntryStateIsMove = 1, kCatchEntryStateDestShift = 1 }; | 107 enum { kCatchEntryStateIsMove = 1, kCatchEntryStateDestShift = 1 }; |
109 | 108 |
110 CatchEntryState() : data_(NULL), ref_count_(NULL) {} | 109 CatchEntryState() : data_(NULL), ref_count_(NULL) {} |
111 explicit CatchEntryState(intptr_t* data) | 110 explicit CatchEntryState(intptr_t* data) |
112 : data_(data), ref_count_(new intptr_t(1)) {} | 111 : data_(data), ref_count_(new intptr_t(1)) {} |
113 | 112 |
114 CatchEntryState(const CatchEntryState& state) { Copy(state); } | 113 CatchEntryState(const CatchEntryState& state) { Copy(state); } |
115 | 114 |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
157 // 1-2 - 1st encoded src,dest pair | 156 // 1-2 - 1st encoded src,dest pair |
158 // 3-4 - 2nd pair | 157 // 3-4 - 2nd pair |
159 // .... | 158 // .... |
160 intptr_t* data_; | 159 intptr_t* data_; |
161 intptr_t* ref_count_; | 160 intptr_t* ref_count_; |
162 }; | 161 }; |
163 | 162 |
164 } // namespace dart | 163 } // namespace dart |
165 | 164 |
166 #endif // RUNTIME_VM_EXCEPTIONS_H_ | 165 #endif // RUNTIME_VM_EXCEPTIONS_H_ |
OLD | NEW |