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 // Generate a snapshot file after loading all the scripts specified on the | 5 // Generate a snapshot file after loading all the scripts specified on the |
6 // command line. | 6 // command line. |
7 | 7 |
| 8 #include <stdio.h> |
8 #include <stdlib.h> | 9 #include <stdlib.h> |
9 #include <string.h> | 10 #include <string.h> |
10 #include <stdio.h> | |
11 | 11 |
12 #include <cstdarg> | 12 #include <cstdarg> |
13 | 13 |
14 #include "include/dart_api.h" | |
15 | |
16 #include "bin/builtin.h" | 14 #include "bin/builtin.h" |
17 #include "bin/dartutils.h" | 15 #include "bin/dartutils.h" |
18 #include "bin/eventhandler.h" | 16 #include "bin/eventhandler.h" |
19 #include "bin/file.h" | 17 #include "bin/file.h" |
20 #include "bin/log.h" | 18 #include "bin/log.h" |
21 #include "bin/thread.h" | 19 #include "bin/thread.h" |
22 #include "bin/utils.h" | 20 #include "bin/utils.h" |
23 #include "bin/vmservice_impl.h" | 21 #include "bin/vmservice_impl.h" |
24 | 22 |
| 23 #include "include/dart_api.h" |
| 24 |
25 #include "platform/globals.h" | 25 #include "platform/globals.h" |
26 | 26 |
27 | |
28 namespace dart { | 27 namespace dart { |
29 namespace bin { | 28 namespace bin { |
30 | 29 |
31 #define CHECK_RESULT(result) \ | 30 #define CHECK_RESULT(result) \ |
32 if (Dart_IsError(result)) { \ | 31 if (Dart_IsError(result)) { \ |
33 Log::PrintErr("Error: %s", Dart_GetError(result)); \ | 32 Log::PrintErr("Error: %s", Dart_GetError(result)); \ |
34 Dart_ExitScope(); \ | 33 Dart_ExitScope(); \ |
35 Dart_ShutdownIsolate(); \ | 34 Dart_ShutdownIsolate(); \ |
36 exit(255); \ | 35 exit(255); \ |
37 } \ | 36 } \ |
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
174 if (vm_isolate_snapshot_filename == NULL) { | 173 if (vm_isolate_snapshot_filename == NULL) { |
175 Log::PrintErr("No vm isolate snapshot output file specified.\n\n"); | 174 Log::PrintErr("No vm isolate snapshot output file specified.\n\n"); |
176 return -1; | 175 return -1; |
177 } | 176 } |
178 | 177 |
179 if (isolate_snapshot_filename == NULL) { | 178 if (isolate_snapshot_filename == NULL) { |
180 Log::PrintErr("No isolate snapshot output file specified.\n\n"); | 179 Log::PrintErr("No isolate snapshot output file specified.\n\n"); |
181 return -1; | 180 return -1; |
182 } | 181 } |
183 | 182 |
184 if (instructions_snapshot_filename != NULL && | 183 if ((instructions_snapshot_filename != NULL) && |
185 embedder_entry_points_manifest == NULL) { | 184 (embedder_entry_points_manifest == NULL)) { |
186 Log::PrintErr( | 185 Log::PrintErr( |
187 "Specifying an instructions snapshot filename indicates precompilation" | 186 "Specifying an instructions snapshot filename indicates precompilation" |
188 ". But no embedder entry points manifest was specified.\n\n"); | 187 ". But no embedder entry points manifest was specified.\n\n"); |
189 return -1; | 188 return -1; |
190 } | 189 } |
191 | 190 |
192 if (embedder_entry_points_manifest != NULL && | 191 if ((embedder_entry_points_manifest != NULL) && |
193 instructions_snapshot_filename == NULL) { | 192 (instructions_snapshot_filename == NULL)) { |
194 Log::PrintErr( | 193 Log::PrintErr( |
195 "Specifying the embedder entry points manifest indicates " | 194 "Specifying the embedder entry points manifest indicates " |
196 "precompilation. But no instuctions snapshot was specified.\n\n"); | 195 "precompilation. But no instuctions snapshot was specified.\n\n"); |
197 return -1; | 196 return -1; |
198 } | 197 } |
199 | 198 |
200 return 0; | 199 return 0; |
201 } | 200 } |
202 | 201 |
203 | 202 |
(...skipping 617 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
821 | 820 |
822 // The entries allocation must be explicitly cleaned up via | 821 // The entries allocation must be explicitly cleaned up via |
823 // |CleanupEntryPointsCollection| | 822 // |CleanupEntryPointsCollection| |
824 return entries; | 823 return entries; |
825 } | 824 } |
826 | 825 |
827 | 826 |
828 static Dart_QualifiedFunctionName* ParseEntryPointsManifestIfPresent() { | 827 static Dart_QualifiedFunctionName* ParseEntryPointsManifestIfPresent() { |
829 Dart_QualifiedFunctionName* entries = | 828 Dart_QualifiedFunctionName* entries = |
830 ParseEntryPointsManifestFile(embedder_entry_points_manifest); | 829 ParseEntryPointsManifestFile(embedder_entry_points_manifest); |
831 if (entries == NULL && IsSnapshottingForPrecompilation()) { | 830 if ((entries == NULL) && IsSnapshottingForPrecompilation()) { |
832 Log::PrintErr( | 831 Log::PrintErr( |
833 "Could not find native embedder entry points during precompilation\n"); | 832 "Could not find native embedder entry points during precompilation\n"); |
834 exit(255); | 833 exit(255); |
835 } | 834 } |
836 return entries; | 835 return entries; |
837 } | 836 } |
838 | 837 |
839 | 838 |
840 static void CreateAndWriteSnapshot() { | 839 static void CreateAndWriteSnapshot() { |
841 ASSERT(!IsSnapshottingForPrecompilation()); | 840 ASSERT(!IsSnapshottingForPrecompilation()); |
(...skipping 310 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1152 EventHandler::Stop(); | 1151 EventHandler::Stop(); |
1153 return 0; | 1152 return 0; |
1154 } | 1153 } |
1155 | 1154 |
1156 } // namespace bin | 1155 } // namespace bin |
1157 } // namespace dart | 1156 } // namespace dart |
1158 | 1157 |
1159 int main(int argc, char** argv) { | 1158 int main(int argc, char** argv) { |
1160 return dart::bin::main(argc, argv); | 1159 return dart::bin::main(argc, argv); |
1161 } | 1160 } |
OLD | NEW |