Index: runtime/bin/gen_snapshot.cc |
diff --git a/runtime/bin/gen_snapshot.cc b/runtime/bin/gen_snapshot.cc |
index e815265deb62b0caa68c51500f1a7cb4f17346a4..2a7d3247eb75c0dd30fa5ecc24c838c3182481a1 100644 |
--- a/runtime/bin/gen_snapshot.cc |
+++ b/runtime/bin/gen_snapshot.cc |
@@ -25,9 +25,9 @@ |
#include "include/dart_api.h" |
#include "include/dart_tools_api.h" |
-#include "platform/hashmap.h" |
#include "platform/globals.h" |
#include "platform/growable_array.h" |
+#include "platform/hashmap.h" |
namespace dart { |
namespace bin { |
@@ -57,13 +57,11 @@ static const int kErrorExitCode = 255; |
exit(exit_code); \ |
} |
- |
// The core snapshot to use when creating isolates. Normally NULL, but loaded |
// from a file when creating script snapshots. |
const uint8_t* isolate_snapshot_data = NULL; |
const uint8_t* isolate_snapshot_instructions = NULL; |
- |
// Global state that indicates whether a snapshot is to be created and |
// if so which file to write the snapshot into. |
enum SnapshotKind { |
@@ -84,7 +82,6 @@ static bool dependencies_only = false; |
static bool print_dependencies = false; |
static const char* dependencies_filename = NULL; |
- |
// Value of the --load-compilation-trace flag. |
// (This pointer points into an argv buffer and does not need to be |
// free'd.) |
@@ -100,7 +97,6 @@ static const char* commandline_package_root = NULL; |
// free'd.) |
static const char* commandline_packages_file = NULL; |
- |
// Global state which contains a pointer to the script name for which |
// a snapshot needs to be created (NULL would result in the creation |
// of a generic snapshot that contains only the corelibs). |
@@ -118,7 +114,6 @@ static bool IsValidFlag(const char* name, |
(strncmp(name, prefix, prefix_length) == 0)); |
} |
- |
// The environment provided through the command line using -D options. |
static dart::HashMap* environment = NULL; |
@@ -171,7 +166,6 @@ static bool ProcessEnvironmentOption(const char* arg) { |
return true; |
} |
- |
static Dart_Handle EnvironmentCallback(Dart_Handle name) { |
uint8_t* utf8_array; |
intptr_t utf8_len; |
@@ -202,7 +196,6 @@ static Dart_Handle EnvironmentCallback(Dart_Handle name) { |
return result; |
} |
- |
static const char* ProcessOption(const char* option, const char* name) { |
const intptr_t length = strlen(name); |
if (strncmp(option, name, length) == 0) { |
@@ -211,7 +204,6 @@ static const char* ProcessOption(const char* option, const char* name) { |
return NULL; |
} |
- |
static bool ProcessSnapshotKindOption(const char* option) { |
const char* kind = ProcessOption(option, "--snapshot_kind="); |
if (kind == NULL) { |
@@ -243,7 +235,6 @@ static bool ProcessSnapshotKindOption(const char* option) { |
return false; |
} |
- |
static bool ProcessVmSnapshotDataOption(const char* option) { |
const char* name = ProcessOption(option, "--vm_snapshot_data="); |
if (name == NULL) { |
@@ -256,7 +247,6 @@ static bool ProcessVmSnapshotDataOption(const char* option) { |
return false; |
} |
- |
static bool ProcessVmSnapshotInstructionsOption(const char* option) { |
const char* name = ProcessOption(option, "--vm_snapshot_instructions="); |
if (name == NULL) { |
@@ -269,7 +259,6 @@ static bool ProcessVmSnapshotInstructionsOption(const char* option) { |
return false; |
} |
- |
static bool ProcessIsolateSnapshotDataOption(const char* option) { |
const char* name = ProcessOption(option, "--isolate_snapshot_data="); |
if (name == NULL) { |
@@ -282,7 +271,6 @@ static bool ProcessIsolateSnapshotDataOption(const char* option) { |
return false; |
} |
- |
static bool ProcessIsolateSnapshotInstructionsOption(const char* option) { |
const char* name = ProcessOption(option, "--isolate_snapshot_instructions="); |
if (name == NULL) { |
@@ -295,7 +283,6 @@ static bool ProcessIsolateSnapshotInstructionsOption(const char* option) { |
return false; |
} |
- |
static bool ProcessAssemblyOption(const char* option) { |
const char* name = ProcessOption(option, "--assembly="); |
if (name != NULL) { |
@@ -305,7 +292,6 @@ static bool ProcessAssemblyOption(const char* option) { |
return false; |
} |
- |
static bool ProcessScriptSnapshotOption(const char* option) { |
const char* name = ProcessOption(option, "--script_snapshot="); |
if (name == NULL) { |
@@ -318,7 +304,6 @@ static bool ProcessScriptSnapshotOption(const char* option) { |
return false; |
} |
- |
static bool ProcessDependenciesOption(const char* option) { |
const char* name = ProcessOption(option, "--dependencies="); |
if (name != NULL) { |
@@ -328,7 +313,6 @@ static bool ProcessDependenciesOption(const char* option) { |
return false; |
} |
- |
static bool ProcessDependenciesOnlyOption(const char* option) { |
const char* name = ProcessOption(option, "--dependencies_only"); |
if (name == NULL) { |
@@ -365,7 +349,6 @@ static bool ProcessEmbedderEntryPointsManifestOption(const char* option) { |
return false; |
} |
- |
static bool ProcessLoadCompilationTraceOption(const char* option) { |
const char* name = ProcessOption(option, "--load_compilation_trace="); |
if (name == NULL) { |
@@ -378,7 +361,6 @@ static bool ProcessLoadCompilationTraceOption(const char* option) { |
return false; |
} |
- |
static bool ProcessPackageRootOption(const char* option) { |
const char* name = ProcessOption(option, "--package_root="); |
if (name == NULL) { |
@@ -391,7 +373,6 @@ static bool ProcessPackageRootOption(const char* option) { |
return false; |
} |
- |
static bool ProcessPackagesOption(const char* option) { |
const char* name = ProcessOption(option, "--packages="); |
if (name != NULL) { |
@@ -401,7 +382,6 @@ static bool ProcessPackagesOption(const char* option) { |
return false; |
} |
- |
static bool ProcessURLmappingOption(const char* option) { |
const char* mapping = ProcessOption(option, "--url_mapping="); |
if (mapping == NULL) { |
@@ -414,12 +394,10 @@ static bool ProcessURLmappingOption(const char* option) { |
return false; |
} |
- |
static bool IsSnapshottingForPrecompilation() { |
return (snapshot_kind == kAppAOTBlobs) || (snapshot_kind == kAppAOTAssembly); |
} |
- |
// Parse out the command line arguments. Returns -1 if the arguments |
// are incorrect, 0 otherwise. |
static int ParseArguments(int argc, |
@@ -545,7 +523,6 @@ static int ParseArguments(int argc, |
return 0; |
} |
- |
static void WriteFile(const char* filename, |
const uint8_t* buffer, |
const intptr_t size) { |
@@ -565,7 +542,6 @@ static void WriteFile(const char* filename, |
file->Release(); |
} |
- |
static void ReadFile(const char* filename, uint8_t** buffer, intptr_t* size) { |
File* file = File::Open(filename, File::kRead); |
if (file == NULL) { |
@@ -585,7 +561,6 @@ static void ReadFile(const char* filename, uint8_t** buffer, intptr_t* size) { |
file->Release(); |
} |
- |
class UriResolverIsolateScope { |
public: |
UriResolverIsolateScope() { |
@@ -611,10 +586,8 @@ class UriResolverIsolateScope { |
DISALLOW_COPY_AND_ASSIGN(UriResolverIsolateScope); |
}; |
- |
Dart_Isolate UriResolverIsolateScope::isolate = NULL; |
- |
static void AddDependency(const char* uri_string) { |
IsolateData* isolate_data = |
reinterpret_cast<IsolateData*>(Dart_CurrentIsolateData()); |
@@ -624,7 +597,6 @@ static void AddDependency(const char* uri_string) { |
} |
} |
- |
static Dart_Handle LoadUrlContents(const char* uri_string) { |
bool failed = false; |
char* error_string = NULL; |
@@ -656,7 +628,6 @@ static Dart_Handle LoadUrlContents(const char* uri_string) { |
return result; |
} |
- |
static Dart_Handle ResolveUriInWorkingDirectory(const char* script_uri) { |
bool failed = false; |
char* result_string = NULL; |
@@ -682,7 +653,6 @@ static Dart_Handle ResolveUriInWorkingDirectory(const char* script_uri) { |
return result; |
} |
- |
static Dart_Handle LoadSnapshotCreationScript(const char* script_name) { |
// First resolve the specified script uri with respect to the original |
// working directory. |
@@ -704,7 +674,6 @@ static Dart_Handle LoadSnapshotCreationScript(const char* script_name) { |
} |
} |
- |
static Builtin::BuiltinLibraryId BuiltinId(const char* url) { |
if (DartUtils::IsDartBuiltinLibURL(url)) { |
return Builtin::kBuiltinLibrary; |
@@ -715,7 +684,6 @@ static Builtin::BuiltinLibraryId BuiltinId(const char* url) { |
return Builtin::kInvalidLibrary; |
} |
- |
// Generates a depfile like gcc -M -MF. Must be consumable by Ninja. |
class DependenciesFileWriter : public ValueObject { |
public: |
@@ -816,7 +784,6 @@ class DependenciesFileWriter : public ValueObject { |
bool success_; |
}; |
- |
static void CreateAndWriteDependenciesFile() { |
IsolateData* isolate_data = |
reinterpret_cast<IsolateData*>(Dart_CurrentIsolateData()); |
@@ -861,7 +828,6 @@ static void CreateAndWriteDependenciesFile() { |
isolate_data->set_dependencies(NULL); |
} |
- |
static Dart_Handle CreateSnapshotLibraryTagHandler(Dart_LibraryTag tag, |
Dart_Handle library, |
Dart_Handle url) { |
@@ -940,7 +906,6 @@ static Dart_Handle CreateSnapshotLibraryTagHandler(Dart_LibraryTag tag, |
} |
} |
- |
static Dart_Handle LoadGenericSnapshotCreationScript( |
Builtin::BuiltinLibraryId id) { |
Dart_Handle source = Builtin::Source(id); |
@@ -955,7 +920,6 @@ static Dart_Handle LoadGenericSnapshotCreationScript( |
return lib; |
} |
- |
// clang-format off |
static void PrintUsage() { |
Log::PrintErr( |
@@ -1030,29 +994,24 @@ static void PrintUsage() { |
} |
// clang-format on |
- |
static const char StubNativeFunctionName[] = "StubNativeFunction"; |
- |
void StubNativeFunction(Dart_NativeArguments arguments) { |
// This is a stub function for the resolver |
Dart_SetReturnValue( |
arguments, Dart_NewApiError("<EMBEDDER DID NOT SETUP NATIVE RESOLVER>")); |
} |
- |
static Dart_NativeFunction StubNativeLookup(Dart_Handle name, |
int argument_count, |
bool* auto_setup_scope) { |
return &StubNativeFunction; |
} |
- |
static const uint8_t* StubNativeSymbol(Dart_NativeFunction nf) { |
return reinterpret_cast<const uint8_t*>(StubNativeFunctionName); |
} |
- |
static void SetupStubNativeResolver(size_t lib_index, |
const Dart_QualifiedFunctionName* entry) { |
// TODO(24686): Remove this. |
@@ -1087,7 +1046,6 @@ static void SetupStubNativeResolver(size_t lib_index, |
DART_CHECK_VALID(result); |
} |
- |
// Iterate over all libraries and setup the stub native lookup. This must be |
// run after |SetupStubNativeResolversForPrecompilation| because the former |
// loads some libraries. |
@@ -1108,7 +1066,6 @@ static void SetupStubNativeResolvers() { |
} |
} |
- |
static void ImportNativeEntryPointLibrariesIntoRoot( |
const Dart_QualifiedFunctionName* entries) { |
if (entries == NULL) { |
@@ -1131,7 +1088,6 @@ static void ImportNativeEntryPointLibrariesIntoRoot( |
} |
} |
- |
static void SetupStubNativeResolversForPrecompilation( |
const Dart_QualifiedFunctionName* entries) { |
if (entries == NULL) { |
@@ -1151,7 +1107,6 @@ static void SetupStubNativeResolversForPrecompilation( |
} |
} |
- |
static void CleanupEntryPointItem(const Dart_QualifiedFunctionName* entry) { |
if (entry == NULL) { |
return; |
@@ -1164,7 +1119,6 @@ static void CleanupEntryPointItem(const Dart_QualifiedFunctionName* entry) { |
free(const_cast<char*>(entry->function_name)); |
} |
- |
static void CleanupEntryPointsCollection(Dart_QualifiedFunctionName* entries) { |
if (entries == NULL) { |
return; |
@@ -1181,7 +1135,6 @@ static void CleanupEntryPointsCollection(Dart_QualifiedFunctionName* entries) { |
free(entries); |
} |
- |
char* ParserErrorStringCreate(const char* format, ...) { |
static const size_t kErrorBufferSize = 256; |
@@ -1196,7 +1149,6 @@ char* ParserErrorStringCreate(const char* format, ...) { |
return error_buffer; |
} |
- |
const char* ParseEntryNameForIndex(uint8_t index) { |
switch (index) { |
case 0: |
@@ -1211,7 +1163,6 @@ const char* ParseEntryNameForIndex(uint8_t index) { |
return NULL; |
} |
- |
static bool ParseEntryPointsManifestSingleLine( |
const char* line, |
Dart_QualifiedFunctionName* entry, |
@@ -1267,7 +1218,6 @@ static bool ParseEntryPointsManifestSingleLine( |
return success; |
} |
- |
int64_t ParseEntryPointsManifestLines(FILE* file, |
Dart_QualifiedFunctionName* collection) { |
int64_t entries = 0; |
@@ -1311,7 +1261,6 @@ int64_t ParseEntryPointsManifestLines(FILE* file, |
return entries; |
} |
- |
static Dart_QualifiedFunctionName* ParseEntryPointsManifestFiles() { |
// Total number of entries across all manifest files. |
int64_t entry_count = 0; |
@@ -1363,7 +1312,6 @@ static Dart_QualifiedFunctionName* ParseEntryPointsManifestFiles() { |
return entries; |
} |
- |
static Dart_QualifiedFunctionName* ParseEntryPointsManifestIfPresent() { |
Dart_QualifiedFunctionName* entries = ParseEntryPointsManifestFiles(); |
if ((entries == NULL) && IsSnapshottingForPrecompilation()) { |
@@ -1374,7 +1322,6 @@ static Dart_QualifiedFunctionName* ParseEntryPointsManifestIfPresent() { |
return entries; |
} |
- |
static void LoadCompilationTrace() { |
if ((load_compilation_trace_filename != NULL) && |
(snapshot_kind == kCoreJIT)) { |
@@ -1386,7 +1333,6 @@ static void LoadCompilationTrace() { |
} |
} |
- |
static void CreateAndWriteCoreSnapshot() { |
ASSERT(snapshot_kind == kCore); |
ASSERT(vm_snapshot_data_filename != NULL); |
@@ -1418,7 +1364,6 @@ static void CreateAndWriteCoreSnapshot() { |
} |
} |
- |
static void CreateAndWriteCoreJITSnapshot() { |
ASSERT(snapshot_kind == kCoreJIT); |
ASSERT(vm_snapshot_data_filename != NULL); |
@@ -1458,7 +1403,6 @@ static void CreateAndWriteCoreJITSnapshot() { |
isolate_snapshot_instructions_size); |
} |
- |
static void CreateAndWriteScriptSnapshot() { |
ASSERT(snapshot_kind == kScript); |
ASSERT(script_snapshot_filename != NULL); |
@@ -1473,7 +1417,6 @@ static void CreateAndWriteScriptSnapshot() { |
WriteFile(script_snapshot_filename, buffer, size); |
} |
- |
static void CreateAndWritePrecompiledSnapshot( |
Dart_QualifiedFunctionName* standalone_entry_points) { |
ASSERT(IsSnapshottingForPrecompilation()); |
@@ -1526,7 +1469,6 @@ static void CreateAndWritePrecompiledSnapshot( |
} |
} |
- |
static void SetupForUriResolution() { |
// Set up the library tag handler for this isolate. |
Dart_Handle result = Dart_SetLibraryTagHandler(Loader::LibraryTagHandler); |
@@ -1542,7 +1484,6 @@ static void SetupForUriResolution() { |
CHECK_RESULT(library); |
} |
- |
static void SetupForGenericSnapshotCreation() { |
SetupForUriResolution(); |
@@ -1558,7 +1499,6 @@ static void SetupForGenericSnapshotCreation() { |
} |
} |
- |
static Dart_Isolate CreateServiceIsolate(const char* script_uri, |
const char* main, |
const char* package_root, |
@@ -1605,7 +1545,6 @@ static Dart_Isolate CreateServiceIsolate(const char* script_uri, |
return isolate; |
} |
- |
static MappedMemory* MapFile(const char* filename, |
File::MapType type, |
const uint8_t** buffer) { |
@@ -1630,7 +1569,6 @@ static MappedMemory* MapFile(const char* filename, |
return mapping; |
} |
- |
int main(int argc, char** argv) { |
const int EXTRA_VM_ARGUMENTS = 2; |
CommandLineOptions vm_options(argc + EXTRA_VM_ARGUMENTS); |