OLD | NEW |
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, 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/object_store.h" | 5 #include "vm/object_store.h" |
6 | 6 |
7 #include "vm/exceptions.h" | 7 #include "vm/exceptions.h" |
8 #include "vm/dart_entry.h" | 8 #include "vm/dart_entry.h" |
9 #include "vm/isolate.h" | 9 #include "vm/isolate.h" |
10 #include "vm/object.h" | 10 #include "vm/object.h" |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
46 growable_object_array_class_(Class::null()), | 46 growable_object_array_class_(Class::null()), |
47 float32x4_class_(Class::null()), | 47 float32x4_class_(Class::null()), |
48 int32x4_class_(Class::null()), | 48 int32x4_class_(Class::null()), |
49 float64x2_class_(Class::null()), | 49 float64x2_class_(Class::null()), |
50 typed_data_classes_(Array::null()), | 50 typed_data_classes_(Array::null()), |
51 error_class_(Class::null()), | 51 error_class_(Class::null()), |
52 stacktrace_class_(Class::null()), | 52 stacktrace_class_(Class::null()), |
53 jsregexp_class_(Class::null()), | 53 jsregexp_class_(Class::null()), |
54 weak_property_class_(Class::null()), | 54 weak_property_class_(Class::null()), |
55 mirror_reference_class_(Class::null()), | 55 mirror_reference_class_(Class::null()), |
| 56 user_tag_class_(Class::null()), |
| 57 tag_table_(GrowableObjectArray::null()), |
56 symbol_table_(Array::null()), | 58 symbol_table_(Array::null()), |
57 canonical_type_arguments_(Array::null()), | 59 canonical_type_arguments_(Array::null()), |
58 async_library_(Library::null()), | 60 async_library_(Library::null()), |
59 builtin_library_(Library::null()), | 61 builtin_library_(Library::null()), |
60 core_library_(Library::null()), | 62 core_library_(Library::null()), |
61 isolate_library_(Library::null()), | 63 isolate_library_(Library::null()), |
62 math_library_(Library::null()), | 64 math_library_(Library::null()), |
63 mirrors_library_(Library::null()), | 65 mirrors_library_(Library::null()), |
64 native_wrappers_library_(Library::null()), | 66 native_wrappers_library_(Library::null()), |
65 root_library_(Library::null()), | 67 root_library_(Library::null()), |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
116 | 118 |
117 result = DartLibraryCalls::InstanceCreate(library, | 119 result = DartLibraryCalls::InstanceCreate(library, |
118 Symbols::StackOverflowError(), | 120 Symbols::StackOverflowError(), |
119 Symbols::Dot(), | 121 Symbols::Dot(), |
120 Object::empty_array()); | 122 Object::empty_array()); |
121 if (result.IsError()) { | 123 if (result.IsError()) { |
122 return false; | 124 return false; |
123 } | 125 } |
124 set_stack_overflow(Instance::Cast(result)); | 126 set_stack_overflow(Instance::Cast(result)); |
125 | 127 |
| 128 ASSERT(this->tag_table() == GrowableObjectArray::null()); |
| 129 this->tag_table_ = GrowableObjectArray::New(); |
| 130 |
126 result = DartLibraryCalls::InstanceCreate(library, | 131 result = DartLibraryCalls::InstanceCreate(library, |
127 Symbols::OutOfMemoryError(), | 132 Symbols::OutOfMemoryError(), |
128 Symbols::Dot(), | 133 Symbols::Dot(), |
129 Object::empty_array()); | 134 Object::empty_array()); |
130 if (result.IsError()) { | 135 if (result.IsError()) { |
131 return false; | 136 return false; |
132 } | 137 } |
133 set_out_of_memory(Instance::Cast(result)); | 138 set_out_of_memory(Instance::Cast(result)); |
134 const Array& code_array = Array::Handle( | 139 const Array& code_array = Array::Handle( |
135 isolate, | 140 isolate, |
136 Array::New(Stacktrace::kPreallocatedStackdepth, Heap::kOld)); | 141 Array::New(Stacktrace::kPreallocatedStackdepth, Heap::kOld)); |
137 const Array& pc_offset_array = Array::Handle( | 142 const Array& pc_offset_array = Array::Handle( |
138 isolate, | 143 isolate, |
139 Array::New(Stacktrace::kPreallocatedStackdepth, Heap::kOld)); | 144 Array::New(Stacktrace::kPreallocatedStackdepth, Heap::kOld)); |
140 const Stacktrace& stack_trace = | 145 const Stacktrace& stack_trace = |
141 Stacktrace::Handle(Stacktrace::New(code_array, pc_offset_array)); | 146 Stacktrace::Handle(Stacktrace::New(code_array, pc_offset_array)); |
142 // Expansion of inlined functions requires additional memory at run time, | 147 // Expansion of inlined functions requires additional memory at run time, |
143 // avoid it. | 148 // avoid it. |
144 stack_trace.set_expand_inlined(false); | 149 stack_trace.set_expand_inlined(false); |
145 set_preallocated_stack_trace(stack_trace); | 150 set_preallocated_stack_trace(stack_trace); |
146 | 151 |
147 return true; | 152 return true; |
148 } | 153 } |
149 | 154 |
150 } // namespace dart | 155 } // namespace dart |
OLD | NEW |