| 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 "include/dart_api.h" | 5 #include "include/dart_api.h" |
| 6 #include "include/dart_mirrors_api.h" | 6 #include "include/dart_mirrors_api.h" |
| 7 #include "include/dart_native_api.h" | 7 #include "include/dart_native_api.h" |
| 8 | 8 |
| 9 #include "platform/assert.h" | 9 #include "platform/assert.h" |
| 10 #include "lib/stacktrace.h" | 10 #include "lib/stacktrace.h" |
| (...skipping 6305 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6316 | 6316 |
| 6317 DART_EXPORT Dart_Handle Dart_Precompile( | 6317 DART_EXPORT Dart_Handle Dart_Precompile( |
| 6318 Dart_QualifiedFunctionName entry_points[], | 6318 Dart_QualifiedFunctionName entry_points[], |
| 6319 bool reset_fields) { | 6319 bool reset_fields) { |
| 6320 UNREACHABLE(); | 6320 UNREACHABLE(); |
| 6321 return 0; | 6321 return 0; |
| 6322 } | 6322 } |
| 6323 | 6323 |
| 6324 | 6324 |
| 6325 DART_EXPORT Dart_Handle Dart_CreatePrecompiledSnapshotAssembly( | 6325 DART_EXPORT Dart_Handle Dart_CreatePrecompiledSnapshotAssembly( |
| 6326 uint8_t** vm_isolate_snapshot_buffer, |
| 6327 intptr_t* vm_isolate_snapshot_size, |
| 6328 uint8_t** isolate_snapshot_buffer, |
| 6329 intptr_t* isolate_snapshot_size, |
| 6326 uint8_t** assembly_buffer, | 6330 uint8_t** assembly_buffer, |
| 6327 intptr_t* assembly_size) { | 6331 intptr_t* assembly_size) { |
| 6328 UNREACHABLE(); | 6332 UNREACHABLE(); |
| 6329 return 0; | 6333 return 0; |
| 6330 } | 6334 } |
| 6331 | 6335 |
| 6332 | 6336 |
| 6333 DART_EXPORT Dart_Handle Dart_CreatePrecompiledSnapshotBlob( | 6337 DART_EXPORT Dart_Handle Dart_CreatePrecompiledSnapshotBlob( |
| 6334 uint8_t** vm_isolate_snapshot_buffer, | 6338 uint8_t** vm_isolate_snapshot_buffer, |
| 6335 intptr_t* vm_isolate_snapshot_size, | 6339 intptr_t* vm_isolate_snapshot_size, |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6367 reset_fields)); | 6371 reset_fields)); |
| 6368 if (!error.IsNull()) { | 6372 if (!error.IsNull()) { |
| 6369 return Api::NewHandle(T, error.raw()); | 6373 return Api::NewHandle(T, error.raw()); |
| 6370 } | 6374 } |
| 6371 return Api::Success(); | 6375 return Api::Success(); |
| 6372 #endif | 6376 #endif |
| 6373 } | 6377 } |
| 6374 | 6378 |
| 6375 | 6379 |
| 6376 DART_EXPORT Dart_Handle Dart_CreatePrecompiledSnapshotAssembly( | 6380 DART_EXPORT Dart_Handle Dart_CreatePrecompiledSnapshotAssembly( |
| 6381 uint8_t** vm_isolate_snapshot_buffer, |
| 6382 intptr_t* vm_isolate_snapshot_size, |
| 6383 uint8_t** isolate_snapshot_buffer, |
| 6384 intptr_t* isolate_snapshot_size, |
| 6377 uint8_t** assembly_buffer, | 6385 uint8_t** assembly_buffer, |
| 6378 intptr_t* assembly_size) { | 6386 intptr_t* assembly_size) { |
| 6379 #if defined(TARGET_ARCH_IA32) | 6387 #if defined(TARGET_ARCH_IA32) |
| 6380 return Api::NewError("Precompilation is not supported on IA32."); | 6388 return Api::NewError("Precompilation is not supported on IA32."); |
| 6381 #elif defined(TARGET_ARCH_DBC) | 6389 #elif defined(TARGET_ARCH_DBC) |
| 6382 return Api::NewError("Precompilation is not supported on DBC."); | 6390 return Api::NewError("Precompilation is not supported on DBC."); |
| 6383 #else | 6391 #else |
| 6384 API_TIMELINE_DURATION; | 6392 API_TIMELINE_DURATION; |
| 6385 DARTSCOPE(Thread::Current()); | 6393 DARTSCOPE(Thread::Current()); |
| 6386 Isolate* I = T->isolate(); | 6394 Isolate* I = T->isolate(); |
| 6387 if (I->compilation_allowed()) { | 6395 if (I->compilation_allowed()) { |
| 6388 return Api::NewError("Isolate is not precompiled. " | 6396 return Api::NewError("Isolate is not precompiled. " |
| 6389 "Did you forget to call Dart_Precompile?"); | 6397 "Did you forget to call Dart_Precompile?"); |
| 6390 } | 6398 } |
| 6391 ASSERT(FLAG_load_deferred_eagerly); | 6399 ASSERT(FLAG_load_deferred_eagerly); |
| 6400 if (vm_isolate_snapshot_buffer == NULL) { |
| 6401 RETURN_NULL_ERROR(vm_isolate_snapshot_buffer); |
| 6402 } |
| 6403 if (vm_isolate_snapshot_size == NULL) { |
| 6404 RETURN_NULL_ERROR(vm_isolate_snapshot_size); |
| 6405 } |
| 6406 if (isolate_snapshot_buffer == NULL) { |
| 6407 RETURN_NULL_ERROR(isolate_snapshot_buffer); |
| 6408 } |
| 6409 if (isolate_snapshot_size == NULL) { |
| 6410 RETURN_NULL_ERROR(isolate_snapshot_size); |
| 6411 } |
| 6392 if (assembly_buffer == NULL) { | 6412 if (assembly_buffer == NULL) { |
| 6393 RETURN_NULL_ERROR(assembly_buffer); | 6413 RETURN_NULL_ERROR(assembly_buffer); |
| 6394 } | 6414 } |
| 6395 if (assembly_size == NULL) { | 6415 if (assembly_size == NULL) { |
| 6396 RETURN_NULL_ERROR(assembly_size); | 6416 RETURN_NULL_ERROR(assembly_size); |
| 6397 } | 6417 } |
| 6398 | 6418 |
| 6399 NOT_IN_PRODUCT(TimelineDurationScope tds2(T, Timeline::GetIsolateStream(), | 6419 NOT_IN_PRODUCT(TimelineDurationScope tds2(T, Timeline::GetIsolateStream(), |
| 6400 "WriteAppAOTSnapshot")); | 6420 "WriteAppAOTSnapshot")); |
| 6401 AssemblyInstructionsWriter instructions_writer(assembly_buffer, | 6421 AssemblyInstructionsWriter instructions_writer(assembly_buffer, |
| 6402 ApiReallocate, | 6422 ApiReallocate, |
| 6403 2 * MB /* initial_size */); | 6423 2 * MB /* initial_size */); |
| 6404 uint8_t* vm_isolate_snapshot_buffer = NULL; | |
| 6405 uint8_t* isolate_snapshot_buffer = NULL; | |
| 6406 FullSnapshotWriter writer(Snapshot::kAppNoJIT, | 6424 FullSnapshotWriter writer(Snapshot::kAppNoJIT, |
| 6407 &vm_isolate_snapshot_buffer, | 6425 vm_isolate_snapshot_buffer, |
| 6408 &isolate_snapshot_buffer, | 6426 isolate_snapshot_buffer, |
| 6409 ApiReallocate, | 6427 ApiReallocate, |
| 6410 &instructions_writer); | 6428 &instructions_writer); |
| 6411 | 6429 |
| 6412 writer.WriteFullSnapshot(); | 6430 writer.WriteFullSnapshot(); |
| 6431 *vm_isolate_snapshot_size = writer.VmIsolateSnapshotSize(); |
| 6432 *isolate_snapshot_size = writer.IsolateSnapshotSize(); |
| 6413 *assembly_size = instructions_writer.AssemblySize(); | 6433 *assembly_size = instructions_writer.AssemblySize(); |
| 6414 | 6434 |
| 6415 return Api::Success(); | 6435 return Api::Success(); |
| 6416 #endif | 6436 #endif |
| 6417 } | 6437 } |
| 6418 | 6438 |
| 6419 | 6439 |
| 6420 DART_EXPORT Dart_Handle Dart_CreatePrecompiledSnapshotBlob( | 6440 DART_EXPORT Dart_Handle Dart_CreatePrecompiledSnapshotBlob( |
| 6421 uint8_t** vm_isolate_snapshot_buffer, | 6441 uint8_t** vm_isolate_snapshot_buffer, |
| 6422 intptr_t* vm_isolate_snapshot_size, | 6442 intptr_t* vm_isolate_snapshot_size, |
| (...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6601 | 6621 |
| 6602 DART_EXPORT bool Dart_IsPrecompiledRuntime() { | 6622 DART_EXPORT bool Dart_IsPrecompiledRuntime() { |
| 6603 #if defined(DART_PRECOMPILED_RUNTIME) | 6623 #if defined(DART_PRECOMPILED_RUNTIME) |
| 6604 return true; | 6624 return true; |
| 6605 #else | 6625 #else |
| 6606 return false; | 6626 return false; |
| 6607 #endif | 6627 #endif |
| 6608 } | 6628 } |
| 6609 | 6629 |
| 6610 } // namespace dart | 6630 } // namespace dart |
| OLD | NEW |