| 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 "include/dart_native_api.h" | 8 #include "include/dart_native_api.h" |
| 9 #include "platform/assert.h" | 9 #include "platform/assert.h" |
| 10 #include "platform/text_buffer.h" | 10 #include "platform/text_buffer.h" |
| (...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 141 NoOOBMessageScope::~NoOOBMessageScope() { | 141 NoOOBMessageScope::~NoOOBMessageScope() { |
| 142 thread()->RestoreOOBMessageInterrupts(); | 142 thread()->RestoreOOBMessageInterrupts(); |
| 143 } | 143 } |
| 144 | 144 |
| 145 | 145 |
| 146 NoReloadScope::NoReloadScope(Isolate* isolate, Thread* thread) | 146 NoReloadScope::NoReloadScope(Isolate* isolate, Thread* thread) |
| 147 : StackResource(thread), | 147 : StackResource(thread), |
| 148 isolate_(isolate) { | 148 isolate_(isolate) { |
| 149 ASSERT(isolate_ != NULL); | 149 ASSERT(isolate_ != NULL); |
| 150 AtomicOperations::FetchAndIncrement(&(isolate_->no_reload_scope_depth_)); | 150 AtomicOperations::FetchAndIncrement(&(isolate_->no_reload_scope_depth_)); |
| 151 ASSERT( |
| 152 AtomicOperations::LoadRelaxed(&(isolate_->no_reload_scope_depth_)) >= 0); |
| 151 } | 153 } |
| 152 | 154 |
| 153 | 155 |
| 154 NoReloadScope::~NoReloadScope() { | 156 NoReloadScope::~NoReloadScope() { |
| 155 uintptr_t previous_value = | 157 AtomicOperations::FetchAndDecrement(&(isolate_->no_reload_scope_depth_)); |
| 156 AtomicOperations::FetchAndDecrement(&(isolate_->no_reload_scope_depth_)); | 158 ASSERT( |
| 157 // If the previous value was 0 we have underflowed. | 159 AtomicOperations::LoadRelaxed(&(isolate_->no_reload_scope_depth_)) >= 0); |
| 158 ASSERT(previous_value != 0); | |
| 159 } | 160 } |
| 160 | 161 |
| 161 | 162 |
| 162 void Isolate::RegisterClass(const Class& cls) { | 163 void Isolate::RegisterClass(const Class& cls) { |
| 163 NOT_IN_PRODUCT( | 164 NOT_IN_PRODUCT( |
| 164 if (IsReloading()) { | 165 if (IsReloading()) { |
| 165 reload_context()->RegisterClass(cls); | 166 reload_context()->RegisterClass(cls); |
| 166 return; | 167 return; |
| 167 } | 168 } |
| 168 ) | 169 ) |
| (...skipping 2726 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2895 void IsolateSpawnState::DecrementSpawnCount() { | 2896 void IsolateSpawnState::DecrementSpawnCount() { |
| 2896 ASSERT(spawn_count_monitor_ != NULL); | 2897 ASSERT(spawn_count_monitor_ != NULL); |
| 2897 ASSERT(spawn_count_ != NULL); | 2898 ASSERT(spawn_count_ != NULL); |
| 2898 MonitorLocker ml(spawn_count_monitor_); | 2899 MonitorLocker ml(spawn_count_monitor_); |
| 2899 ASSERT(*spawn_count_ > 0); | 2900 ASSERT(*spawn_count_ > 0); |
| 2900 *spawn_count_ = *spawn_count_ - 1; | 2901 *spawn_count_ = *spawn_count_ - 1; |
| 2901 ml.Notify(); | 2902 ml.Notify(); |
| 2902 } | 2903 } |
| 2903 | 2904 |
| 2904 } // namespace dart | 2905 } // namespace dart |
| OLD | NEW |