| OLD | NEW | 
|---|
| 1 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file | 1 // Copyright (c) 2012, 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_CODE_DESCRIPTORS_H_ | 5 #ifndef VM_CODE_DESCRIPTORS_H_ | 
| 6 #define VM_CODE_DESCRIPTORS_H_ | 6 #define VM_CODE_DESCRIPTORS_H_ | 
| 7 | 7 | 
| 8 #include "vm/ast.h" | 8 #include "vm/ast.h" | 
| 9 #include "vm/code_generator.h" | 9 #include "vm/code_generator.h" | 
| 10 #include "vm/globals.h" | 10 #include "vm/globals.h" | 
| (...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 95   void AddHandler(intptr_t try_index, | 95   void AddHandler(intptr_t try_index, | 
| 96                   intptr_t outer_try_index, | 96                   intptr_t outer_try_index, | 
| 97                   intptr_t pc_offset, | 97                   intptr_t pc_offset, | 
| 98                   const Array& handler_types, | 98                   const Array& handler_types, | 
| 99                   bool needs_stacktrace) { | 99                   bool needs_stacktrace) { | 
| 100     ASSERT(try_index >= 0); | 100     ASSERT(try_index >= 0); | 
| 101     while (Length() <= try_index) { | 101     while (Length() <= try_index) { | 
| 102       AddPlaceHolder(); | 102       AddPlaceHolder(); | 
| 103     } | 103     } | 
| 104     list_[try_index].outer_try_index = outer_try_index; | 104     list_[try_index].outer_try_index = outer_try_index; | 
|  | 105     ASSERT(list_[try_index].pc_offset == ExceptionHandlers::kInvalidPcOffset); | 
| 105     list_[try_index].pc_offset = pc_offset; | 106     list_[try_index].pc_offset = pc_offset; | 
| 106     ASSERT(handler_types.IsZoneHandle()); | 107     ASSERT(handler_types.IsZoneHandle()); | 
| 107     list_[try_index].handler_types = &handler_types; | 108     list_[try_index].handler_types = &handler_types; | 
| 108     list_[try_index].needs_stacktrace |= needs_stacktrace; | 109     list_[try_index].needs_stacktrace |= needs_stacktrace; | 
| 109   } | 110   } | 
| 110 | 111 | 
| 111 | 112 | 
| 112   // Called by rethrows, to mark their enclosing handlers. | 113   // Called by rethrows, to mark their enclosing handlers. | 
| 113   void SetNeedsStacktrace(intptr_t try_index) { | 114   void SetNeedsStacktrace(intptr_t try_index) { | 
| 114     // Rethrows can be generated outside a try by the compiler. | 115     // Rethrows can be generated outside a try by the compiler. | 
| (...skipping 20 matching lines...) Expand all  Loading... | 
| 135   RawExceptionHandlers* FinalizeExceptionHandlers(uword entry_point) const; | 136   RawExceptionHandlers* FinalizeExceptionHandlers(uword entry_point) const; | 
| 136 | 137 | 
| 137  private: | 138  private: | 
| 138   GrowableArray<struct HandlerDesc> list_; | 139   GrowableArray<struct HandlerDesc> list_; | 
| 139   DISALLOW_COPY_AND_ASSIGN(ExceptionHandlerList); | 140   DISALLOW_COPY_AND_ASSIGN(ExceptionHandlerList); | 
| 140 }; | 141 }; | 
| 141 | 142 | 
| 142 }  // namespace dart | 143 }  // namespace dart | 
| 143 | 144 | 
| 144 #endif  // VM_CODE_DESCRIPTORS_H_ | 145 #endif  // VM_CODE_DESCRIPTORS_H_ | 
| OLD | NEW | 
|---|