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/isolate.h" | 5 #include "vm/isolate.h" |
6 | 6 |
7 #include "include/dart_api.h" | 7 #include "include/dart_api.h" |
8 #include "platform/assert.h" | 8 #include "platform/assert.h" |
9 #include "platform/json.h" | 9 #include "platform/json.h" |
10 #include "vm/code_observers.h" | 10 #include "vm/code_observers.h" |
(...skipping 688 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
699 delete simulator_; | 699 delete simulator_; |
700 #endif | 700 #endif |
701 delete mutex_; | 701 delete mutex_; |
702 mutex_ = NULL; // Fail fast if interrupts are scheduled on a dead isolate. | 702 mutex_ = NULL; // Fail fast if interrupts are scheduled on a dead isolate. |
703 delete message_handler_; | 703 delete message_handler_; |
704 message_handler_ = NULL; // Fail fast if we send messages to a dead isolate. | 704 message_handler_ = NULL; // Fail fast if we send messages to a dead isolate. |
705 ASSERT(deopt_context_ == NULL); // No deopt in progress when isolate deleted. | 705 ASSERT(deopt_context_ == NULL); // No deopt in progress when isolate deleted. |
706 delete spawn_state_; | 706 delete spawn_state_; |
707 delete log_; | 707 delete log_; |
708 log_ = NULL; | 708 log_ = NULL; |
| 709 delete object_id_ring_; |
| 710 object_id_ring_ = NULL; |
709 delete pause_loop_monitor_; | 711 delete pause_loop_monitor_; |
710 pause_loop_monitor_ = NULL; | 712 pause_loop_monitor_ = NULL; |
711 if (compiler_stats_ != NULL) { | 713 if (compiler_stats_ != NULL) { |
712 delete compiler_stats_; | 714 delete compiler_stats_; |
713 compiler_stats_ = NULL; | 715 compiler_stats_ = NULL; |
714 } | 716 } |
715 } | 717 } |
716 | 718 |
717 | 719 |
718 #if defined(DEBUG) | 720 #if defined(DEBUG) |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
779 result->debugger_->Initialize(result); | 781 result->debugger_->Initialize(result); |
780 if (FLAG_trace_isolates) { | 782 if (FLAG_trace_isolates) { |
781 if (name_prefix == NULL || strcmp(name_prefix, "vm-isolate") != 0) { | 783 if (name_prefix == NULL || strcmp(name_prefix, "vm-isolate") != 0) { |
782 OS::Print("[+] Starting isolate:\n" | 784 OS::Print("[+] Starting isolate:\n" |
783 "\tisolate: %s\n", result->name()); | 785 "\tisolate: %s\n", result->name()); |
784 } | 786 } |
785 } | 787 } |
786 if (FLAG_compiler_stats) { | 788 if (FLAG_compiler_stats) { |
787 result->compiler_stats_ = new CompilerStats(result); | 789 result->compiler_stats_ = new CompilerStats(result); |
788 } | 790 } |
| 791 ObjectIdRing::Init(result); |
789 // Add to isolate list. | 792 // Add to isolate list. |
790 AddIsolateTolist(result); | 793 AddIsolateTolist(result); |
791 | 794 |
792 return result; | 795 return result; |
793 } | 796 } |
794 | 797 |
795 | 798 |
796 void Isolate::InitializeStackLimit() { | 799 void Isolate::InitializeStackLimit() { |
797 SetStackLimitFromStackBase(Isolate::GetCurrentStackPointer()); | 800 SetStackLimitFromStackBase(Isolate::GetCurrentStackPointer()); |
798 } | 801 } |
(...skipping 1232 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2031 serialized_message_, serialized_message_len_); | 2034 serialized_message_, serialized_message_len_); |
2032 } | 2035 } |
2033 | 2036 |
2034 | 2037 |
2035 void IsolateSpawnState::Cleanup() { | 2038 void IsolateSpawnState::Cleanup() { |
2036 SwitchIsolateScope switch_scope(I); | 2039 SwitchIsolateScope switch_scope(I); |
2037 Dart::ShutdownIsolate(); | 2040 Dart::ShutdownIsolate(); |
2038 } | 2041 } |
2039 | 2042 |
2040 } // namespace dart | 2043 } // namespace dart |
OLD | NEW |