| OLD | NEW | 
|    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_debugger_api.h" |   10 #include "include/dart_debugger_api.h" | 
|   11  |   11  | 
|   12 #include "bin/builtin.h" |   12 #include "bin/builtin.h" | 
|   13 #include "bin/dartutils.h" |   13 #include "bin/dartutils.h" | 
|   14 #include "bin/dbg_connection.h" |   14 #include "bin/dbg_connection.h" | 
|   15 #include "bin/directory.h" |   15 #include "bin/directory.h" | 
|   16 #include "bin/eventhandler.h" |   16 #include "bin/eventhandler.h" | 
|   17 #include "bin/extensions.h" |   17 #include "bin/extensions.h" | 
|   18 #include "bin/file.h" |   18 #include "bin/file.h" | 
 |   19 #include "bin/isolate_data.h" | 
|   19 #include "bin/platform.h" |   20 #include "bin/platform.h" | 
|   20 #include "bin/process.h" |   21 #include "bin/process.h" | 
|   21 #include "platform/globals.h" |   22 #include "platform/globals.h" | 
|   22  |   23  | 
|   23 // snapshot_buffer points to a snapshot if we link in a snapshot otherwise |   24 // snapshot_buffer points to a snapshot if we link in a snapshot otherwise | 
|   24 // it is initialized to NULL. |   25 // it is initialized to NULL. | 
|   25 extern const uint8_t* snapshot_buffer; |   26 extern const uint8_t* snapshot_buffer; | 
|   26  |   27  | 
|   27  |   28  | 
|   28 // Global state that stores the original working directory.. |   29 // Global state that stores the original working directory.. | 
| (...skipping 576 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  605   return true; |  606   return true; | 
|  606 } |  607 } | 
|  607  |  608  | 
|  608  |  609  | 
|  609 static bool CreateIsolateAndSetup(const char* script_uri, |  610 static bool CreateIsolateAndSetup(const char* script_uri, | 
|  610                                   const char* main, |  611                                   const char* main, | 
|  611                                   void* data, char** error) { |  612                                   void* data, char** error) { | 
|  612   return CreateIsolateAndSetupHelper(script_uri, |  613   return CreateIsolateAndSetupHelper(script_uri, | 
|  613                                      main, |  614                                      main, | 
|  614                                      false,  // script_uri already canonical. |  615                                      false,  // script_uri already canonical. | 
|  615                                      data, |  616                                      new IsolateData(), | 
|  616                                      error); |  617                                      error); | 
|  617 } |  618 } | 
|  618  |  619  | 
|  619  |  620  | 
|  620 static void PrintUsage() { |  621 static void PrintUsage() { | 
|  621   fprintf(stderr, |  622   fprintf(stderr, | 
|  622           "dart [<vm-flags>] <dart-script-file> [<dart-options>]\n"); |  623           "dart [<vm-flags>] <dart-script-file> [<dart-options>]\n"); | 
|  623 } |  624 } | 
|  624  |  625  | 
|  625  |  626  | 
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  685   va_end(arguments); |  686   va_end(arguments); | 
|  686  |  687  | 
|  687   Dart_ExitScope(); |  688   Dart_ExitScope(); | 
|  688   Dart_ShutdownIsolate(); |  689   Dart_ShutdownIsolate(); | 
|  689   free(const_cast<char*>(original_working_directory)); |  690   free(const_cast<char*>(original_working_directory)); | 
|  690  |  691  | 
|  691   return kErrorExitCode; |  692   return kErrorExitCode; | 
|  692 } |  693 } | 
|  693  |  694  | 
|  694  |  695  | 
 |  696 static void ShutdownIsolate(void* callback_data) { | 
 |  697   IsolateData* isolate_data = reinterpret_cast<IsolateData*>(callback_data); | 
 |  698   EventHandler* handler = isolate_data->event_handler; | 
 |  699   if (handler != NULL) handler->Shutdown(); | 
 |  700   delete isolate_data; | 
 |  701 } | 
 |  702  | 
 |  703  | 
|  695 int main(int argc, char** argv) { |  704 int main(int argc, char** argv) { | 
|  696   char* executable_name; |  705   char* executable_name; | 
|  697   char* script_name; |  706   char* script_name; | 
|  698   CommandLineOptions vm_options(argc); |  707   CommandLineOptions vm_options(argc); | 
|  699   CommandLineOptions dart_options(argc); |  708   CommandLineOptions dart_options(argc); | 
|  700   CommandLineOptions import_map(argc); |  709   CommandLineOptions import_map(argc); | 
|  701   import_map_options = &import_map; |  710   import_map_options = &import_map; | 
|  702   bool print_flags_seen = false; |  711   bool print_flags_seen = false; | 
|  703  |  712  | 
|  704   // Perform platform specific initialization. |  713   // Perform platform specific initialization. | 
| (...skipping 16 matching lines...) Expand all  Loading... | 
|  721       return 0; |  730       return 0; | 
|  722     } else { |  731     } else { | 
|  723       PrintUsage(); |  732       PrintUsage(); | 
|  724       return kErrorExitCode; |  733       return kErrorExitCode; | 
|  725     } |  734     } | 
|  726   } |  735   } | 
|  727  |  736  | 
|  728   Dart_SetVMFlags(vm_options.count(), vm_options.arguments()); |  737   Dart_SetVMFlags(vm_options.count(), vm_options.arguments()); | 
|  729  |  738  | 
|  730   // Initialize the Dart VM. |  739   // Initialize the Dart VM. | 
|  731   Dart_Initialize(CreateIsolateAndSetup, NULL, NULL); |  740   Dart_Initialize(CreateIsolateAndSetup, | 
 |  741                   NULL, | 
 |  742                   ShutdownIsolate); | 
|  732  |  743  | 
|  733   original_working_directory = Directory::Current(); |  744   original_working_directory = Directory::Current(); | 
|  734  |  745  | 
|  735   // Call CreateIsolateAndSetup which creates an isolate and loads up |  746   // Call CreateIsolateAndSetup which creates an isolate and loads up | 
|  736   // the specified application script. |  747   // the specified application script. | 
|  737   char* error = NULL; |  748   char* error = NULL; | 
|  738   char* isolate_name = BuildIsolateName(script_name, "main"); |  749   char* isolate_name = BuildIsolateName(script_name, "main"); | 
|  739   if (!CreateIsolateAndSetupHelper(script_name, |  750   if (!CreateIsolateAndSetupHelper(script_name, | 
|  740                                    "main", |  751                                    "main", | 
|  741                                    true,  // Canonicalize the script name. |  752                                    true,  // Canonicalize the script name. | 
|  742                                    NULL, |  753                                    new IsolateData(), | 
|  743                                    &error)) { |  754                                    &error)) { | 
|  744     fprintf(stderr, "%s\n", error); |  755     fprintf(stderr, "%s\n", error); | 
|  745     free(const_cast<char*>(original_working_directory)); |  756     free(const_cast<char*>(original_working_directory)); | 
|  746     free(error); |  757     free(error); | 
|  747     delete [] isolate_name; |  758     delete [] isolate_name; | 
|  748     return kErrorExitCode;  // Indicates we encountered an error. |  759     return kErrorExitCode;  // Indicates we encountered an error. | 
|  749   } |  760   } | 
|  750   delete [] isolate_name; |  761   delete [] isolate_name; | 
|  751  |  762  | 
|  752   Dart_Isolate isolate = Dart_CurrentIsolate(); |  763   Dart_Isolate isolate = Dart_CurrentIsolate(); | 
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  806   DumpPprofSymbolInfo(); |  817   DumpPprofSymbolInfo(); | 
|  807   // Shutdown the isolate. |  818   // Shutdown the isolate. | 
|  808   Dart_ShutdownIsolate(); |  819   Dart_ShutdownIsolate(); | 
|  809   // Terminate process exit-code handler. |  820   // Terminate process exit-code handler. | 
|  810   Process::TerminateExitCodeHandler(); |  821   Process::TerminateExitCodeHandler(); | 
|  811  |  822  | 
|  812   free(const_cast<char*>(original_working_directory)); |  823   free(const_cast<char*>(original_working_directory)); | 
|  813  |  824  | 
|  814   return 0; |  825   return 0; | 
|  815 } |  826 } | 
| OLD | NEW |