| 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/dart.h" | 5 #include "vm/dart.h" |
| 6 | 6 |
| 7 #include "vm/code_observers.h" | 7 #include "vm/code_observers.h" |
| 8 #include "vm/cpu.h" | 8 #include "vm/cpu.h" |
| 9 #include "vm/dart_api_state.h" | 9 #include "vm/dart_api_state.h" |
| 10 #include "vm/dart_entry.h" | 10 #include "vm/dart_entry.h" |
| (...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 151 instructions_snapshot, | 151 instructions_snapshot, |
| 152 T); | 152 T); |
| 153 const Error& error = Error::Handle(reader.ReadVmIsolateSnapshot()); | 153 const Error& error = Error::Handle(reader.ReadVmIsolateSnapshot()); |
| 154 if (!error.IsNull()) { | 154 if (!error.IsNull()) { |
| 155 return error.ToCString(); | 155 return error.ToCString(); |
| 156 } | 156 } |
| 157 if (FLAG_trace_isolates) { | 157 if (FLAG_trace_isolates) { |
| 158 OS::Print("Size of vm isolate snapshot = %" Pd "\n", | 158 OS::Print("Size of vm isolate snapshot = %" Pd "\n", |
| 159 snapshot->length()); | 159 snapshot->length()); |
| 160 vm_isolate_->heap()->PrintSizes(); | 160 vm_isolate_->heap()->PrintSizes(); |
| 161 MegamorphicCacheTable::PrintSizes(vm_isolate_); | 161 vm_isolate_->megamorphic_cache_table()->PrintSizes(); |
| 162 intptr_t size; | 162 intptr_t size; |
| 163 intptr_t capacity; | 163 intptr_t capacity; |
| 164 Symbols::GetStats(vm_isolate_, &size, &capacity); | 164 Symbols::GetStats(vm_isolate_, &size, &capacity); |
| 165 OS::Print("VM Isolate: Number of symbols : %" Pd "\n", size); | 165 OS::Print("VM Isolate: Number of symbols : %" Pd "\n", size); |
| 166 OS::Print("VM Isolate: Symbol table capacity : %" Pd "\n", capacity); | 166 OS::Print("VM Isolate: Symbol table capacity : %" Pd "\n", capacity); |
| 167 } | 167 } |
| 168 } else { | 168 } else { |
| 169 Symbols::InitOnce(vm_isolate_); | 169 Symbols::InitOnce(vm_isolate_); |
| 170 } | 170 } |
| 171 Scanner::InitOnce(); | 171 Scanner::InitOnce(); |
| (...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 287 IsolateSnapshotReader reader(snapshot->content(), | 287 IsolateSnapshotReader reader(snapshot->content(), |
| 288 snapshot->length(), | 288 snapshot->length(), |
| 289 Object::instructions_snapshot_buffer(), | 289 Object::instructions_snapshot_buffer(), |
| 290 T); | 290 T); |
| 291 const Error& error = Error::Handle(reader.ReadFullSnapshot()); | 291 const Error& error = Error::Handle(reader.ReadFullSnapshot()); |
| 292 if (!error.IsNull()) { | 292 if (!error.IsNull()) { |
| 293 return error.raw(); | 293 return error.raw(); |
| 294 } | 294 } |
| 295 if (FLAG_trace_isolates) { | 295 if (FLAG_trace_isolates) { |
| 296 I->heap()->PrintSizes(); | 296 I->heap()->PrintSizes(); |
| 297 MegamorphicCacheTable::PrintSizes(I); | 297 I->megamorphic_cache_table()->PrintSizes(); |
| 298 } | 298 } |
| 299 } else { | 299 } else { |
| 300 // Populate the isolate's symbol table with all symbols from the | 300 // Populate the isolate's symbol table with all symbols from the |
| 301 // VM isolate. We do this so that when we generate a full snapshot | 301 // VM isolate. We do this so that when we generate a full snapshot |
| 302 // for the isolate we have a unified symbol table that we can then | 302 // for the isolate we have a unified symbol table that we can then |
| 303 // read into the VM isolate. | 303 // read into the VM isolate. |
| 304 Symbols::AddPredefinedSymbolsToIsolate(); | 304 Symbols::AddPredefinedSymbolsToIsolate(); |
| 305 } | 305 } |
| 306 | 306 |
| 307 Object::VerifyBuiltinVtables(); | 307 Object::VerifyBuiltinVtables(); |
| 308 | 308 |
| 309 { | 309 { |
| 310 TimelineDurationScope tds(I, I->GetIsolateStream(), "StubCode::Init"); | 310 TimelineDurationScope tds(I, I->GetIsolateStream(), "StubCode::Init"); |
| 311 StubCode::Init(I); | 311 StubCode::Init(I); |
| 312 } | 312 } |
| 313 | 313 |
| 314 MegamorphicCacheTable::InitMissHandler(I); | 314 I->megamorphic_cache_table()->InitMissHandler(); |
| 315 if (snapshot_buffer == NULL) { | 315 if (snapshot_buffer == NULL) { |
| 316 if (!I->object_store()->PreallocateObjects()) { | 316 if (!I->object_store()->PreallocateObjects()) { |
| 317 return I->object_store()->sticky_error(); | 317 return I->object_store()->sticky_error(); |
| 318 } | 318 } |
| 319 } | 319 } |
| 320 | 320 |
| 321 I->heap()->EnableGrowthControl(); | 321 I->heap()->EnableGrowthControl(); |
| 322 I->set_init_callback_data(data); | 322 I->set_init_callback_data(data); |
| 323 Api::SetupAcquiredError(I); | 323 Api::SetupAcquiredError(I); |
| 324 if (FLAG_print_class_table) { | 324 if (FLAG_print_class_table) { |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 381 return predefined_handles_->handles_.IsValidScopedHandle(address); | 381 return predefined_handles_->handles_.IsValidScopedHandle(address); |
| 382 } | 382 } |
| 383 | 383 |
| 384 | 384 |
| 385 bool Dart::IsReadOnlyApiHandle(Dart_Handle handle) { | 385 bool Dart::IsReadOnlyApiHandle(Dart_Handle handle) { |
| 386 ASSERT(predefined_handles_ != NULL); | 386 ASSERT(predefined_handles_ != NULL); |
| 387 return predefined_handles_->api_handles_.IsValidHandle(handle); | 387 return predefined_handles_->api_handles_.IsValidHandle(handle); |
| 388 } | 388 } |
| 389 | 389 |
| 390 } // namespace dart | 390 } // namespace dart |
| OLD | NEW |