Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1299)

Side by Side Diff: runtime/bin/main.cc

Issue 2896523003: Minor code reorg to ensure we don't include parts of the Library tag handler in the precompiled run… (Closed)
Patch Set: Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « runtime/bin/loader.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, 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 <stdlib.h> 5 #include <stdlib.h>
6 #include <string.h> 6 #include <string.h>
7 #include <stdio.h> 7 #include <stdio.h>
8 8
9 #include "include/dart_api.h" 9 #include "include/dart_api.h"
10 #include "include/dart_tools_api.h" 10 #include "include/dart_tools_api.h"
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
107 107
108 108
109 // Global flag that is used to indicate that we want to trace resolution of 109 // Global flag that is used to indicate that we want to trace resolution of
110 // URIs and the loading of libraries, parts and scripts. 110 // URIs and the loading of libraries, parts and scripts.
111 static bool trace_loading = false; 111 static bool trace_loading = false;
112 112
113 113
114 static char* app_script_uri = NULL; 114 static char* app_script_uri = NULL;
115 static const uint8_t* app_isolate_snapshot_data = NULL; 115 static const uint8_t* app_isolate_snapshot_data = NULL;
116 static const uint8_t* app_isolate_snapshot_instructions = NULL; 116 static const uint8_t* app_isolate_snapshot_instructions = NULL;
117 static AppSnapshot* app_snapshot = NULL;
118 117
119 118
120 static Dart_Isolate main_isolate = NULL; 119 static Dart_Isolate main_isolate = NULL;
121 120
122 121
123 static const char* DEFAULT_VM_SERVICE_SERVER_IP = "localhost"; 122 static const char* DEFAULT_VM_SERVICE_SERVER_IP = "localhost";
124 static const int DEFAULT_VM_SERVICE_SERVER_PORT = 8181; 123 static const int DEFAULT_VM_SERVICE_SERVER_PORT = 8181;
125 // VM Service options. 124 // VM Service options.
126 static const char* vm_service_server_ip = DEFAULT_VM_SERVICE_SERVER_IP; 125 static const char* vm_service_server_ip = DEFAULT_VM_SERVICE_SERVER_IP;
127 // The 0 port is a magic value which results in the first available port 126 // The 0 port is a magic value which results in the first available port
(...skipping 702 matching lines...) Expand 10 before | Expand all | Expand 10 after
830 if (!use_dart_frontend) { 829 if (!use_dart_frontend) {
831 *error = strdup("Kernel isolate not supported."); 830 *error = strdup("Kernel isolate not supported.");
832 return NULL; 831 return NULL;
833 } 832 }
834 script_uri = frontend_filename; 833 script_uri = frontend_filename;
835 if (packages_config == NULL) { 834 if (packages_config == NULL) {
836 packages_config = commandline_packages_file; 835 packages_config = commandline_packages_file;
837 } 836 }
838 } 837 }
839 838
839 void* kernel_platform = NULL;
840 void* kernel_program = NULL;
841 AppSnapshot* app_snapshot = NULL;
842
840 #if defined(DART_PRECOMPILED_RUNTIME) 843 #if defined(DART_PRECOMPILED_RUNTIME)
841 // AOT: All isolates start from the app snapshot. 844 // AOT: All isolates start from the app snapshot.
842 bool isolate_run_app_snapshot = true; 845 bool isolate_run_app_snapshot = true;
843 const uint8_t* isolate_snapshot_data = app_isolate_snapshot_data; 846 const uint8_t* isolate_snapshot_data = app_isolate_snapshot_data;
844 const uint8_t* isolate_snapshot_instructions = 847 const uint8_t* isolate_snapshot_instructions =
845 app_isolate_snapshot_instructions; 848 app_isolate_snapshot_instructions;
846 AppSnapshot* app_snapshot = NULL;
847 #else 849 #else
848 // JIT: Main isolate starts from the app snapshot, if any. Other isolates 850 // JIT: Main isolate starts from the app snapshot, if any. Other isolates
849 // use the core libraries snapshot. 851 // use the core libraries snapshot.
850 bool isolate_run_app_snapshot = false; 852 bool isolate_run_app_snapshot = false;
851 const uint8_t* isolate_snapshot_data = core_isolate_snapshot_data; 853 const uint8_t* isolate_snapshot_data = core_isolate_snapshot_data;
852 const uint8_t* isolate_snapshot_instructions = 854 const uint8_t* isolate_snapshot_instructions =
853 core_isolate_snapshot_instructions; 855 core_isolate_snapshot_instructions;
854 AppSnapshot* app_snapshot = NULL;
855 if ((app_isolate_snapshot_data != NULL) && 856 if ((app_isolate_snapshot_data != NULL) &&
856 (is_main_isolate || ((app_script_uri != NULL) && 857 (is_main_isolate || ((app_script_uri != NULL) &&
857 (strcmp(script_uri, app_script_uri) == 0)))) { 858 (strcmp(script_uri, app_script_uri) == 0)))) {
858 isolate_run_app_snapshot = true; 859 isolate_run_app_snapshot = true;
859 isolate_snapshot_data = app_isolate_snapshot_data; 860 isolate_snapshot_data = app_isolate_snapshot_data;
860 isolate_snapshot_instructions = app_isolate_snapshot_instructions; 861 isolate_snapshot_instructions = app_isolate_snapshot_instructions;
861 } else if (!is_main_isolate) { 862 } else if (!is_main_isolate) {
862 app_snapshot = Snapshot::TryReadAppSnapshot(script_uri); 863 app_snapshot = Snapshot::TryReadAppSnapshot(script_uri);
863 if (app_snapshot != NULL) { 864 if (app_snapshot != NULL) {
864 isolate_run_app_snapshot = true; 865 isolate_run_app_snapshot = true;
865 const uint8_t* ignore_vm_snapshot_data; 866 const uint8_t* ignore_vm_snapshot_data;
866 const uint8_t* ignore_vm_snapshot_instructions; 867 const uint8_t* ignore_vm_snapshot_instructions;
867 app_snapshot->SetBuffers( 868 app_snapshot->SetBuffers(
868 &ignore_vm_snapshot_data, &ignore_vm_snapshot_instructions, 869 &ignore_vm_snapshot_data, &ignore_vm_snapshot_instructions,
869 &isolate_snapshot_data, &isolate_snapshot_instructions); 870 &isolate_snapshot_data, &isolate_snapshot_instructions);
870 } 871 }
871 } 872 }
872 #endif
873
874 void* kernel_platform = NULL;
875 void* kernel_program = NULL;
876 #if !defined(DART_PRECOMPILED_RUNTIME)
877 const bool is_service_isolate = 873 const bool is_service_isolate =
878 strcmp(script_uri, DART_VM_SERVICE_ISOLATE_NAME) == 0; 874 strcmp(script_uri, DART_VM_SERVICE_ISOLATE_NAME) == 0;
879 if (!is_kernel_isolate && !is_service_isolate) { 875 if (!is_kernel_isolate && !is_service_isolate) {
880 const uint8_t* platform_file = NULL; 876 const uint8_t* platform_file = NULL;
881 if (use_platform_binary) { 877 if (use_platform_binary) {
882 intptr_t platform_length = -1; 878 intptr_t platform_length = -1;
883 bool success = TryReadKernel(platform_binary_filename, &platform_file, 879 bool success = TryReadKernel(platform_binary_filename, &platform_file,
884 &platform_length); 880 &platform_length);
885 if (!success) { 881 if (!success) {
886 *error = strdup("The platform binary is not a valid Dart Kernel file."); 882 *error = strdup("The platform binary is not a valid Dart Kernel file.");
(...skipping 764 matching lines...) Expand 10 before | Expand all | Expand 10 after
1651 Thread::InitOnce(); 1647 Thread::InitOnce();
1652 1648
1653 Loader::InitOnce(); 1649 Loader::InitOnce();
1654 1650
1655 if (!DartUtils::SetOriginalWorkingDirectory()) { 1651 if (!DartUtils::SetOriginalWorkingDirectory()) {
1656 OSError err; 1652 OSError err;
1657 Log::PrintErr("Error determining current directory: %s\n", err.message()); 1653 Log::PrintErr("Error determining current directory: %s\n", err.message());
1658 Platform::Exit(kErrorExitCode); 1654 Platform::Exit(kErrorExitCode);
1659 } 1655 }
1660 1656
1661 app_snapshot = Snapshot::TryReadAppSnapshot(script_name); 1657 AppSnapshot* app_snapshot = Snapshot::TryReadAppSnapshot(script_name);
1662 if (app_snapshot != NULL) { 1658 if (app_snapshot != NULL) {
1663 vm_run_app_snapshot = true; 1659 vm_run_app_snapshot = true;
1664 app_snapshot->SetBuffers(&vm_snapshot_data, &vm_snapshot_instructions, 1660 app_snapshot->SetBuffers(&vm_snapshot_data, &vm_snapshot_instructions,
1665 &app_isolate_snapshot_data, 1661 &app_isolate_snapshot_data,
1666 &app_isolate_snapshot_instructions); 1662 &app_isolate_snapshot_instructions);
1667 } 1663 }
1668 1664
1669 #if !defined(PRODUCT) && !defined(DART_PRECOMPILED_RUNTIME) 1665 #if !defined(PRODUCT) && !defined(DART_PRECOMPILED_RUNTIME)
1670 // Constant true if PRODUCT or DART_PRECOMPILED_RUNTIME. 1666 // Constant true if PRODUCT or DART_PRECOMPILED_RUNTIME.
1671 if ((gen_snapshot_kind != kNone) || vm_run_app_snapshot) { 1667 if ((gen_snapshot_kind != kNone) || vm_run_app_snapshot) {
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
1762 Platform::Exit(Process::GlobalExitCode()); 1758 Platform::Exit(Process::GlobalExitCode());
1763 } 1759 }
1764 1760
1765 } // namespace bin 1761 } // namespace bin
1766 } // namespace dart 1762 } // namespace dart
1767 1763
1768 int main(int argc, char** argv) { 1764 int main(int argc, char** argv) {
1769 dart::bin::main(argc, argv); 1765 dart::bin::main(argc, argv);
1770 UNREACHABLE(); 1766 UNREACHABLE();
1771 } 1767 }
OLDNEW
« no previous file with comments | « runtime/bin/loader.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698