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

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

Issue 11195017: Allow package: imports inside isolates (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Addresses Siva's comments. Created 8 years, 2 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 | Annotate | Revision Log
« no previous file with comments | « runtime/bin/gen_snapshot.cc ('k') | tests/isolate/timer_isolate_test.dart » ('j') | 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_debugger_api.h" 10 #include "include/dart_debugger_api.h"
(...skipping 381 matching lines...) Expand 10 before | Expand all | Expand 10 after
392 *error = strdup(Dart_GetError(result)); \ 392 *error = strdup(Dart_GetError(result)); \
393 Dart_ExitScope(); \ 393 Dart_ExitScope(); \
394 Dart_ShutdownIsolate(); \ 394 Dart_ShutdownIsolate(); \
395 return false; \ 395 return false; \
396 } \ 396 } \
397 397
398 398
399 // Returns true on success, false on failure. 399 // Returns true on success, false on failure.
400 static bool CreateIsolateAndSetupHelper(const char* script_uri, 400 static bool CreateIsolateAndSetupHelper(const char* script_uri,
401 const char* main, 401 const char* main,
402 bool resolve_script,
403 void* data, 402 void* data,
404 char** error) { 403 char** error) {
405 Dart_Isolate isolate = 404 Dart_Isolate isolate =
406 Dart_CreateIsolate(script_uri, main, snapshot_buffer, data, error); 405 Dart_CreateIsolate(script_uri, main, snapshot_buffer, data, error);
407 if (isolate == NULL) { 406 if (isolate == NULL) {
408 return false; 407 return false;
409 } 408 }
410 409
411 Dart_EnterScope(); 410 Dart_EnterScope();
412 411
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
459 CHECK_RESULT(uri_lib); 458 CHECK_RESULT(uri_lib);
460 Dart_Handle builtin_lib = 459 Dart_Handle builtin_lib =
461 Builtin::LoadAndCheckLibrary(Builtin::kBuiltinLibrary); 460 Builtin::LoadAndCheckLibrary(Builtin::kBuiltinLibrary);
462 CHECK_RESULT(builtin_lib); 461 CHECK_RESULT(builtin_lib);
463 462
464 // Prepare for script loading by setting up the 'print' and 'timer' 463 // Prepare for script loading by setting up the 'print' and 'timer'
465 // closures and setting up 'package root' for URI resolution. 464 // closures and setting up 'package root' for URI resolution.
466 result = DartUtils::PrepareForScriptLoading(package_root, builtin_lib); 465 result = DartUtils::PrepareForScriptLoading(package_root, builtin_lib);
467 CHECK_RESULT(result); 466 CHECK_RESULT(result);
468 467
469 library = DartUtils::LoadScript(script_uri, resolve_script, builtin_lib); 468 library = DartUtils::LoadScript(script_uri, builtin_lib);
470 } 469 }
471 CHECK_RESULT(library); 470 CHECK_RESULT(library);
472 if (!Dart_IsLibrary(library)) { 471 if (!Dart_IsLibrary(library)) {
473 char errbuf[256]; 472 char errbuf[256];
474 snprintf(errbuf, sizeof(errbuf), 473 snprintf(errbuf, sizeof(errbuf),
475 "Expected a library when loading script: %s", 474 "Expected a library when loading script: %s",
476 script_uri); 475 script_uri);
477 *error = strdup(errbuf); 476 *error = strdup(errbuf);
478 Dart_ExitScope(); 477 Dart_ExitScope();
479 Dart_ShutdownIsolate(); 478 Dart_ShutdownIsolate();
480 return false; 479 return false;
481 } 480 }
482 Dart_ExitScope(); 481 Dart_ExitScope();
483 return true; 482 return true;
484 } 483 }
485 484
486 485
487 static bool CreateIsolateAndSetup(const char* script_uri, 486 static bool CreateIsolateAndSetup(const char* script_uri,
488 const char* main, 487 const char* main,
489 void* data, char** error) { 488 void* data, char** error) {
490 return CreateIsolateAndSetupHelper(script_uri, 489 return CreateIsolateAndSetupHelper(script_uri,
491 main, 490 main,
492 false, // script_uri already canonical.
493 new IsolateData(), 491 new IsolateData(),
494 error); 492 error);
495 } 493 }
496 494
497 495
498 static void PrintVersion() { 496 static void PrintVersion() {
499 fprintf(stderr, "Dart VM version: %s\n", Dart_VersionString()); 497 fprintf(stderr, "Dart VM version: %s\n", Dart_VersionString());
500 } 498 }
501 499
502 500
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after
677 ASSERT(debug_port != 0); 675 ASSERT(debug_port != 0);
678 DebuggerConnectionHandler::StartHandler(debug_ip, debug_port); 676 DebuggerConnectionHandler::StartHandler(debug_ip, debug_port);
679 } 677 }
680 678
681 // Call CreateIsolateAndSetup which creates an isolate and loads up 679 // Call CreateIsolateAndSetup which creates an isolate and loads up
682 // the specified application script. 680 // the specified application script.
683 char* error = NULL; 681 char* error = NULL;
684 char* isolate_name = BuildIsolateName(script_name, "main"); 682 char* isolate_name = BuildIsolateName(script_name, "main");
685 if (!CreateIsolateAndSetupHelper(script_name, 683 if (!CreateIsolateAndSetupHelper(script_name,
686 "main", 684 "main",
687 true, // Canonicalize the script name.
688 new IsolateData(), 685 new IsolateData(),
689 &error)) { 686 &error)) {
690 fprintf(stderr, "%s\n", error); 687 fprintf(stderr, "%s\n", error);
691 free(error); 688 free(error);
692 delete [] isolate_name; 689 delete [] isolate_name;
693 return kErrorExitCode; // Indicates we encountered an error. 690 return kErrorExitCode; // Indicates we encountered an error.
694 } 691 }
695 delete [] isolate_name; 692 delete [] isolate_name;
696 693
697 Dart_Isolate isolate = Dart_CurrentIsolate(); 694 Dart_Isolate isolate = Dart_CurrentIsolate();
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
743 Dart_ExitScope(); 740 Dart_ExitScope();
744 // Dump symbol information for the profiler. 741 // Dump symbol information for the profiler.
745 DumpPprofSymbolInfo(); 742 DumpPprofSymbolInfo();
746 // Shutdown the isolate. 743 // Shutdown the isolate.
747 Dart_ShutdownIsolate(); 744 Dart_ShutdownIsolate();
748 // Terminate process exit-code handler. 745 // Terminate process exit-code handler.
749 Process::TerminateExitCodeHandler(); 746 Process::TerminateExitCodeHandler();
750 747
751 return 0; 748 return 0;
752 } 749 }
OLDNEW
« no previous file with comments | « runtime/bin/gen_snapshot.cc ('k') | tests/isolate/timer_isolate_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698