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_ISOLATE_H_ | 5 #ifndef VM_ISOLATE_H_ |
6 #define VM_ISOLATE_H_ | 6 #define VM_ISOLATE_H_ |
7 | 7 |
8 #include "include/dart_api.h" | 8 #include "include/dart_api.h" |
9 #include "platform/assert.h" | 9 #include "platform/assert.h" |
10 #include "vm/class_table.h" | 10 #include "vm/class_table.h" |
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
167 | 167 |
168 void ScheduleInterrupts(uword interrupt_bits); | 168 void ScheduleInterrupts(uword interrupt_bits); |
169 uword GetAndClearInterrupts(); | 169 uword GetAndClearInterrupts(); |
170 | 170 |
171 MessageHandler* message_handler() const { return message_handler_; } | 171 MessageHandler* message_handler() const { return message_handler_; } |
172 void set_message_handler(MessageHandler* value) { message_handler_ = value; } | 172 void set_message_handler(MessageHandler* value) { message_handler_ = value; } |
173 | 173 |
174 uword spawn_data() const { return spawn_data_; } | 174 uword spawn_data() const { return spawn_data_; } |
175 void set_spawn_data(uword value) { spawn_data_ = value; } | 175 void set_spawn_data(uword value) { spawn_data_ = value; } |
176 | 176 |
177 // Deprecate. | 177 static const intptr_t kNoDeoptId = -1; |
178 intptr_t ast_node_id() const { return ast_node_id_; } | 178 intptr_t deopt_id() const { return deopt_id_; } |
179 void set_ast_node_id(int value) { ast_node_id_ = value; } | 179 void set_deopt_id(int value) { |
180 | 180 ASSERT(value >= 0); |
181 intptr_t computation_id() const { return computation_id_; } | 181 deopt_id_ = value; |
182 void set_computation_id(int value) { computation_id_ = value; } | 182 } |
183 intptr_t GetNextCid() { return computation_id_++; } | 183 intptr_t GetNextDeoptId() { |
| 184 ASSERT(deopt_id_ != kNoDeoptId); |
| 185 return deopt_id_++; |
| 186 } |
184 | 187 |
185 RawArray* ic_data_array() const { return ic_data_array_; } | 188 RawArray* ic_data_array() const { return ic_data_array_; } |
186 void set_ic_data_array(RawArray* value) { ic_data_array_ = value; } | 189 void set_ic_data_array(RawArray* value) { ic_data_array_ = value; } |
187 ICData* GetICDataForCid(intptr_t cid) const; | 190 ICData* GetICDataForDeoptId(intptr_t deopt_id) const; |
188 | 191 |
189 Debugger* debugger() const { return debugger_; } | 192 Debugger* debugger() const { return debugger_; } |
190 | 193 |
191 GcPrologueCallbacks& gc_prologue_callbacks() { | 194 GcPrologueCallbacks& gc_prologue_callbacks() { |
192 return gc_prologue_callbacks_; | 195 return gc_prologue_callbacks_; |
193 } | 196 } |
194 | 197 |
195 GcEpilogueCallbacks& gc_epilogue_callbacks() { | 198 GcEpilogueCallbacks& gc_epilogue_callbacks() { |
196 return gc_epilogue_callbacks_; | 199 return gc_epilogue_callbacks_; |
197 } | 200 } |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
251 RawContext* top_context_; | 254 RawContext* top_context_; |
252 int32_t random_seed_; | 255 int32_t random_seed_; |
253 uword top_exit_frame_info_; | 256 uword top_exit_frame_info_; |
254 void* init_callback_data_; | 257 void* init_callback_data_; |
255 Dart_LibraryTagHandler library_tag_handler_; | 258 Dart_LibraryTagHandler library_tag_handler_; |
256 ApiState* api_state_; | 259 ApiState* api_state_; |
257 StubCode* stub_code_; | 260 StubCode* stub_code_; |
258 Debugger* debugger_; | 261 Debugger* debugger_; |
259 LongJump* long_jump_base_; | 262 LongJump* long_jump_base_; |
260 TimerList timer_list_; | 263 TimerList timer_list_; |
261 intptr_t ast_node_id_; // Deprecate. | 264 intptr_t deopt_id_; |
262 intptr_t computation_id_; | |
263 RawArray* ic_data_array_; | 265 RawArray* ic_data_array_; |
264 Mutex* mutex_; // protects stack_limit_ and saved_stack_limit_. | 266 Mutex* mutex_; // protects stack_limit_ and saved_stack_limit_. |
265 uword stack_limit_; | 267 uword stack_limit_; |
266 uword saved_stack_limit_; | 268 uword saved_stack_limit_; |
267 MessageHandler* message_handler_; | 269 MessageHandler* message_handler_; |
268 uword spawn_data_; | 270 uword spawn_data_; |
269 GcPrologueCallbacks gc_prologue_callbacks_; | 271 GcPrologueCallbacks gc_prologue_callbacks_; |
270 GcEpilogueCallbacks gc_epilogue_callbacks_; | 272 GcEpilogueCallbacks gc_epilogue_callbacks_; |
271 // Deoptimization support. | 273 // Deoptimization support. |
272 intptr_t* deopt_registers_copy_; | 274 intptr_t* deopt_registers_copy_; |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
340 Isolate* new_isolate_; | 342 Isolate* new_isolate_; |
341 Isolate* saved_isolate_; | 343 Isolate* saved_isolate_; |
342 uword saved_stack_limit_; | 344 uword saved_stack_limit_; |
343 | 345 |
344 DISALLOW_COPY_AND_ASSIGN(SwitchIsolateScope); | 346 DISALLOW_COPY_AND_ASSIGN(SwitchIsolateScope); |
345 }; | 347 }; |
346 | 348 |
347 } // namespace dart | 349 } // namespace dart |
348 | 350 |
349 #endif // VM_ISOLATE_H_ | 351 #endif // VM_ISOLATE_H_ |
OLD | NEW |