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 "lib/stacktrace.h" | 9 #include "lib/stacktrace.h" |
10 #include "platform/assert.h" | 10 #include "platform/assert.h" |
(...skipping 1482 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1493 CHECK_NULL(isolate_snapshot_data_size); | 1493 CHECK_NULL(isolate_snapshot_data_size); |
1494 // Finalize all classes if needed. | 1494 // Finalize all classes if needed. |
1495 Dart_Handle state = Api::CheckAndFinalizePendingClasses(T); | 1495 Dart_Handle state = Api::CheckAndFinalizePendingClasses(T); |
1496 if (::Dart_IsError(state)) { | 1496 if (::Dart_IsError(state)) { |
1497 return state; | 1497 return state; |
1498 } | 1498 } |
1499 I->StopBackgroundCompiler(); | 1499 I->StopBackgroundCompiler(); |
1500 | 1500 |
1501 #if defined(DEBUG) | 1501 #if defined(DEBUG) |
1502 I->heap()->CollectAllGarbage(); | 1502 I->heap()->CollectAllGarbage(); |
1503 CheckFunctionTypesVisitor check_canonical(T); | 1503 { |
1504 I->heap()->IterateObjects(&check_canonical); | 1504 HeapIterationScope iteration(T); |
| 1505 CheckFunctionTypesVisitor check_canonical(T); |
| 1506 iteration.IterateObjects(&check_canonical); |
| 1507 } |
1505 #endif // #if defined(DEBUG) | 1508 #endif // #if defined(DEBUG) |
1506 | 1509 |
1507 Symbols::Compact(I); | 1510 Symbols::Compact(I); |
1508 | 1511 |
1509 FullSnapshotWriter writer(Snapshot::kFull, vm_snapshot_data_buffer, | 1512 FullSnapshotWriter writer(Snapshot::kFull, vm_snapshot_data_buffer, |
1510 isolate_snapshot_data_buffer, ApiReallocate, | 1513 isolate_snapshot_data_buffer, ApiReallocate, |
1511 NULL /* vm_image_writer */, | 1514 NULL /* vm_image_writer */, |
1512 NULL /* isolate_image_writer */); | 1515 NULL /* isolate_image_writer */); |
1513 writer.WriteFullSnapshot(); | 1516 writer.WriteFullSnapshot(); |
1514 if (vm_snapshot_data_buffer != NULL) { | 1517 if (vm_snapshot_data_buffer != NULL) { |
(...skipping 13 matching lines...) Expand all Loading... |
1528 CHECK_NULL(script_snapshot_size); | 1531 CHECK_NULL(script_snapshot_size); |
1529 // Finalize all classes if needed. | 1532 // Finalize all classes if needed. |
1530 Dart_Handle state = Api::CheckAndFinalizePendingClasses(T); | 1533 Dart_Handle state = Api::CheckAndFinalizePendingClasses(T); |
1531 if (::Dart_IsError(state)) { | 1534 if (::Dart_IsError(state)) { |
1532 return state; | 1535 return state; |
1533 } | 1536 } |
1534 Library& lib = Library::Handle(Z, I->object_store()->root_library()); | 1537 Library& lib = Library::Handle(Z, I->object_store()->root_library()); |
1535 | 1538 |
1536 #if defined(DEBUG) | 1539 #if defined(DEBUG) |
1537 I->heap()->CollectAllGarbage(); | 1540 I->heap()->CollectAllGarbage(); |
1538 CheckFunctionTypesVisitor check_canonical(T); | 1541 { |
1539 I->heap()->IterateObjects(&check_canonical); | 1542 HeapIterationScope iteration(T); |
| 1543 CheckFunctionTypesVisitor check_canonical(T); |
| 1544 iteration.IterateObjects(&check_canonical); |
| 1545 } |
1540 #endif // #if defined(DEBUG) | 1546 #endif // #if defined(DEBUG) |
1541 | 1547 |
1542 ScriptSnapshotWriter writer(script_snapshot_buffer, ApiReallocate); | 1548 ScriptSnapshotWriter writer(script_snapshot_buffer, ApiReallocate); |
1543 writer.WriteScriptSnapshot(lib); | 1549 writer.WriteScriptSnapshot(lib); |
1544 *script_snapshot_size = writer.BytesWritten(); | 1550 *script_snapshot_size = writer.BytesWritten(); |
1545 return Api::Success(); | 1551 return Api::Success(); |
1546 } | 1552 } |
1547 | 1553 |
1548 DART_EXPORT void Dart_InterruptIsolate(Dart_Isolate isolate) { | 1554 DART_EXPORT void Dart_InterruptIsolate(Dart_Isolate isolate) { |
1549 if (isolate == NULL) { | 1555 if (isolate == NULL) { |
(...skipping 5220 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6770 #endif | 6776 #endif |
6771 } | 6777 } |
6772 | 6778 |
6773 DART_EXPORT void Dart_DumpNativeStackTrace(void* context) { | 6779 DART_EXPORT void Dart_DumpNativeStackTrace(void* context) { |
6774 #ifndef PRODUCT | 6780 #ifndef PRODUCT |
6775 Profiler::DumpStackTrace(context); | 6781 Profiler::DumpStackTrace(context); |
6776 #endif | 6782 #endif |
6777 } | 6783 } |
6778 | 6784 |
6779 } // namespace dart | 6785 } // namespace dart |
OLD | NEW |