OLD | NEW |
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2016, 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 | 5 |
6 #include "bin/loader.h" | 6 #include "bin/loader.h" |
7 | 7 |
8 #include "bin/builtin.h" | 8 #include "bin/builtin.h" |
9 #include "bin/dartutils.h" | 9 #include "bin/dartutils.h" |
10 #include "bin/extensions.h" | 10 #include "bin/extensions.h" |
(...skipping 634 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
645 } | 645 } |
646 Dart_Handle library_url = Dart_LibraryUrl(library); | 646 Dart_Handle library_url = Dart_LibraryUrl(library); |
647 if (Dart_IsError(library_url)) { | 647 if (Dart_IsError(library_url)) { |
648 return library_url; | 648 return library_url; |
649 } | 649 } |
650 } | 650 } |
651 | 651 |
652 IsolateData* isolate_data = | 652 IsolateData* isolate_data = |
653 reinterpret_cast<IsolateData*>(Dart_CurrentIsolateData()); | 653 reinterpret_cast<IsolateData*>(Dart_CurrentIsolateData()); |
654 ASSERT(isolate_data != NULL); | 654 ASSERT(isolate_data != NULL); |
655 if ((tag == Dart_kScriptTag) && Dart_IsString(library)) { | 655 |
656 // Update packages file for isolate. | |
657 const char* packages_file = NULL; | |
658 Dart_Handle result = Dart_StringToCString(library, &packages_file); | |
659 if (Dart_IsError(result)) { | |
660 return result; | |
661 } | |
662 isolate_data->UpdatePackagesFile(packages_file); | |
663 } | |
664 // Grab this isolate's loader. | 656 // Grab this isolate's loader. |
665 Loader* loader = NULL; | 657 Loader* loader = NULL; |
666 | 658 |
667 // The outer invocation of the tag handler for this isolate. We make the outer | 659 // The outer invocation of the tag handler for this isolate. We make the outer |
668 // invocation block and allow any nested invocations to operate in parallel. | 660 // invocation block and allow any nested invocations to operate in parallel. |
669 const bool blocking_call = !isolate_data->HasLoader(); | 661 const bool blocking_call = !isolate_data->HasLoader(); |
670 | 662 |
671 // If we are the outer invocation of the tag handler and the tag is an import | 663 // If we are the outer invocation of the tag handler and the tag is an import |
672 // this means that we are starting a deferred library load. | 664 // this means that we are starting a deferred library load. |
673 const bool is_deferred_import = blocking_call && (tag == Dart_kImportTag); | 665 const bool is_deferred_import = blocking_call && (tag == Dart_kImportTag); |
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
871 MutexLocker ml(loader_infos_lock_); | 863 MutexLocker ml(loader_infos_lock_); |
872 Loader* loader = LoaderForLocked(dest_port_id); | 864 Loader* loader = LoaderForLocked(dest_port_id); |
873 if (loader == NULL) { | 865 if (loader == NULL) { |
874 return; | 866 return; |
875 } | 867 } |
876 loader->QueueMessage(message); | 868 loader->QueueMessage(message); |
877 } | 869 } |
878 | 870 |
879 } // namespace bin | 871 } // namespace bin |
880 } // namespace dart | 872 } // namespace dart |
OLD | NEW |