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_OBJECT_STORE_H_ | 5 #ifndef VM_OBJECT_STORE_H_ |
6 #define VM_OBJECT_STORE_H_ | 6 #define VM_OBJECT_STORE_H_ |
7 | 7 |
8 #include "vm/object.h" | 8 #include "vm/object.h" |
9 | 9 |
10 namespace dart { | 10 namespace dart { |
(...skipping 415 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
426 return OFFSET_OF(ObjectStore, library_load_error_table_); | 426 return OFFSET_OF(ObjectStore, library_load_error_table_); |
427 } | 427 } |
428 | 428 |
429 RawArray* compile_time_constants() const { | 429 RawArray* compile_time_constants() const { |
430 return compile_time_constants_; | 430 return compile_time_constants_; |
431 } | 431 } |
432 void set_compile_time_constants(const Array& value) { | 432 void set_compile_time_constants(const Array& value) { |
433 compile_time_constants_ = value.raw(); | 433 compile_time_constants_ = value.raw(); |
434 } | 434 } |
435 | 435 |
| 436 RawGrowableObjectArray* megamorphic_cache_table() const { |
| 437 return megamorphic_cache_table_; |
| 438 } |
| 439 void set_megamorphic_cache_table(const GrowableObjectArray& value) { |
| 440 megamorphic_cache_table_ = value.raw(); |
| 441 } |
| 442 RawFunction* megamorphic_miss_function() const { |
| 443 return megamorphic_miss_function_; |
| 444 } |
| 445 void SetMegamorphicMissHandler(const Code& code, const Function& func) { |
| 446 // Hold onto the code so it is traced and not detached from the function. |
| 447 megamorphic_miss_code_ = code.raw(); |
| 448 megamorphic_miss_function_ = func.raw(); |
| 449 } |
| 450 |
436 // Visit all object pointers. | 451 // Visit all object pointers. |
437 void VisitObjectPointers(ObjectPointerVisitor* visitor); | 452 void VisitObjectPointers(ObjectPointerVisitor* visitor); |
438 | 453 |
439 // Called to initialize objects required by the vm but which invoke | 454 // Called to initialize objects required by the vm but which invoke |
440 // dart code. If an error occurs then false is returned and error | 455 // dart code. If an error occurs then false is returned and error |
441 // information is stored in sticky_error(). | 456 // information is stored in sticky_error(). |
442 bool PreallocateObjects(); | 457 bool PreallocateObjects(); |
443 | 458 |
444 void InitKnownObjects(); | 459 void InitKnownObjects(); |
445 | 460 |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
516 RawContext* empty_context_; | 531 RawContext* empty_context_; |
517 RawInstance* stack_overflow_; | 532 RawInstance* stack_overflow_; |
518 RawInstance* out_of_memory_; | 533 RawInstance* out_of_memory_; |
519 RawUnhandledException* preallocated_unhandled_exception_; | 534 RawUnhandledException* preallocated_unhandled_exception_; |
520 RawStacktrace* preallocated_stack_trace_; | 535 RawStacktrace* preallocated_stack_trace_; |
521 RawFunction* lookup_port_handler_; | 536 RawFunction* lookup_port_handler_; |
522 RawTypedData* empty_uint32_array_; | 537 RawTypedData* empty_uint32_array_; |
523 RawFunction* handle_message_function_; | 538 RawFunction* handle_message_function_; |
524 RawArray* library_load_error_table_; | 539 RawArray* library_load_error_table_; |
525 RawArray* compile_time_constants_; | 540 RawArray* compile_time_constants_; |
526 RawObject** to() { | 541 RawObject** to_snapshot() { |
527 return reinterpret_cast<RawObject**>(&compile_time_constants_); | 542 return reinterpret_cast<RawObject**>(&compile_time_constants_); |
528 } | 543 } |
| 544 RawGrowableObjectArray* megamorphic_cache_table_; |
| 545 RawCode* megamorphic_miss_code_; |
| 546 RawFunction* megamorphic_miss_function_; |
| 547 RawObject** to() { |
| 548 return reinterpret_cast<RawObject**>(&megamorphic_miss_function_); |
| 549 } |
529 | 550 |
| 551 friend class FullSnapshotWriter; |
530 friend class SnapshotReader; | 552 friend class SnapshotReader; |
531 friend class VmIsolateSnapshotReader; | 553 friend class VmIsolateSnapshotReader; |
532 | 554 |
533 DISALLOW_COPY_AND_ASSIGN(ObjectStore); | 555 DISALLOW_COPY_AND_ASSIGN(ObjectStore); |
534 }; | 556 }; |
535 | 557 |
536 } // namespace dart | 558 } // namespace dart |
537 | 559 |
538 #endif // VM_OBJECT_STORE_H_ | 560 #endif // VM_OBJECT_STORE_H_ |
OLD | NEW |