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 #include "vm/code_descriptors.h" | 5 #include "vm/code_descriptors.h" |
6 | 6 |
7 namespace dart { | 7 namespace dart { |
8 | 8 |
9 void DescriptorList::AddDescriptor(RawPcDescriptors::Kind kind, | 9 void DescriptorList::AddDescriptor(RawPcDescriptors::Kind kind, |
10 intptr_t pc_offset, | 10 intptr_t pc_offset, |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
53 prev_pc_offset = pc_offset; | 53 prev_pc_offset = pc_offset; |
54 prev_token_pos = token_pos.value(); | 54 prev_token_pos = token_pos.value(); |
55 } | 55 } |
56 | 56 |
57 | 57 |
58 RawCodeSourceMap* CodeSourceMapBuilder::Finalize() { | 58 RawCodeSourceMap* CodeSourceMapBuilder::Finalize() { |
59 return CodeSourceMap::New(&encoded_data_); | 59 return CodeSourceMap::New(&encoded_data_); |
60 } | 60 } |
61 | 61 |
62 | 62 |
63 void StackmapTableBuilder::AddEntry(intptr_t pc_offset, | 63 void StackMapTableBuilder::AddEntry(intptr_t pc_offset, |
64 BitmapBuilder* bitmap, | 64 BitmapBuilder* bitmap, |
65 intptr_t register_bit_count) { | 65 intptr_t register_bit_count) { |
66 stack_map_ = Stackmap::New(pc_offset, bitmap, register_bit_count); | 66 stack_map_ = StackMap::New(pc_offset, bitmap, register_bit_count); |
67 list_.Add(stack_map_, Heap::kOld); | 67 list_.Add(stack_map_, Heap::kOld); |
68 } | 68 } |
69 | 69 |
70 | 70 |
71 bool StackmapTableBuilder::Verify() { | 71 bool StackMapTableBuilder::Verify() { |
72 intptr_t num_entries = Length(); | 72 intptr_t num_entries = Length(); |
73 Stackmap& map1 = Stackmap::Handle(); | 73 StackMap& map1 = StackMap::Handle(); |
74 Stackmap& map2 = Stackmap::Handle(); | 74 StackMap& map2 = StackMap::Handle(); |
75 for (intptr_t i = 1; i < num_entries; i++) { | 75 for (intptr_t i = 1; i < num_entries; i++) { |
76 map1 = MapAt(i - 1); | 76 map1 = MapAt(i - 1); |
77 map2 = MapAt(i); | 77 map2 = MapAt(i); |
78 // Ensure there are no duplicates and the entries are sorted. | 78 // Ensure there are no duplicates and the entries are sorted. |
79 if (map1.PcOffset() >= map2.PcOffset()) { | 79 if (map1.PcOffset() >= map2.PcOffset()) { |
80 return false; | 80 return false; |
81 } | 81 } |
82 } | 82 } |
83 return true; | 83 return true; |
84 } | 84 } |
85 | 85 |
86 | 86 |
87 RawArray* StackmapTableBuilder::FinalizeStackmaps(const Code& code) { | 87 RawArray* StackMapTableBuilder::FinalizeStackMaps(const Code& code) { |
88 ASSERT(Verify()); | 88 ASSERT(Verify()); |
89 intptr_t num_entries = Length(); | 89 intptr_t num_entries = Length(); |
90 if (num_entries == 0) { | 90 if (num_entries == 0) { |
91 return Object::empty_array().raw(); | 91 return Object::empty_array().raw(); |
92 } | 92 } |
93 return Array::MakeArray(list_); | 93 return Array::MakeArray(list_); |
94 } | 94 } |
95 | 95 |
96 | 96 |
97 RawStackmap* StackmapTableBuilder::MapAt(intptr_t index) const { | 97 RawStackMap* StackMapTableBuilder::MapAt(intptr_t index) const { |
98 Stackmap& map = Stackmap::Handle(); | 98 StackMap& map = StackMap::Handle(); |
99 map ^= list_.At(index); | 99 map ^= list_.At(index); |
100 return map.raw(); | 100 return map.raw(); |
101 } | 101 } |
102 | 102 |
103 | 103 |
104 RawExceptionHandlers* ExceptionHandlerList::FinalizeExceptionHandlers( | 104 RawExceptionHandlers* ExceptionHandlerList::FinalizeExceptionHandlers( |
105 uword entry_point) const { | 105 uword entry_point) const { |
106 intptr_t num_handlers = Length(); | 106 intptr_t num_handlers = Length(); |
107 if (num_handlers == 0) { | 107 if (num_handlers == 0) { |
108 return Object::empty_exception_handlers().raw(); | 108 return Object::empty_exception_handlers().raw(); |
(...skipping 17 matching lines...) Expand all Loading... |
126 handlers.SetHandlerInfo(i, list_[i].outer_try_index, list_[i].pc_offset, | 126 handlers.SetHandlerInfo(i, list_[i].outer_try_index, list_[i].pc_offset, |
127 list_[i].needs_stacktrace, has_catch_all); | 127 list_[i].needs_stacktrace, has_catch_all); |
128 handlers.SetHandledTypes(i, *list_[i].handler_types); | 128 handlers.SetHandledTypes(i, *list_[i].handler_types); |
129 } | 129 } |
130 } | 130 } |
131 return handlers.raw(); | 131 return handlers.raw(); |
132 } | 132 } |
133 | 133 |
134 | 134 |
135 } // namespace dart | 135 } // namespace dart |
OLD | NEW |