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

Unified Diff: runtime/bin/vmservice/loader.dart

Issue 2820853002: Ensure resolved packages before _Dart_kResolveAsFilePath. (Closed)
Patch Set: Created 3 years, 8 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/bin/vmservice/loader.dart
diff --git a/runtime/bin/vmservice/loader.dart b/runtime/bin/vmservice/loader.dart
index 8d56466ae6578f7ae152709a20fd25388c8cc92c..58bb5a75fd20d16cf50319a03ec08b17cec83731 100644
--- a/runtime/bin/vmservice/loader.dart
+++ b/runtime/bin/vmservice/loader.dart
@@ -1131,34 +1131,36 @@ _processLoadRequest(request) {
}
break;
case _Dart_kResolveAsFilePath:
- String uri = request[4];
- Uri resolvedUri = Uri.parse(_sanitizeWindowsPath(uri));
- try {
- if (resolvedUri.scheme == 'package') {
- resolvedUri = loaderState._resolvePackageUri(resolvedUri);
- }
- if (resolvedUri.scheme == '' || resolvedUri.scheme == 'file') {
- resolvedUri = loaderState._workingDirectory.resolveUri(resolvedUri);
+ loaderState._triggerPackageResolution(() {
+ String uri = request[4];
+ Uri resolvedUri = Uri.parse(_sanitizeWindowsPath(uri));
+ try {
+ if (resolvedUri.scheme == 'package') {
+ resolvedUri = loaderState._resolvePackageUri(resolvedUri);
+ }
+ if (resolvedUri.scheme == '' || resolvedUri.scheme == 'file') {
+ resolvedUri = loaderState._workingDirectory.resolveUri(resolvedUri);
+ var msg = new List(5);
+ msg[0] = tag;
+ msg[1] = uri;
+ msg[2] = resolvedUri.toString();
+ msg[3] = null;
+ msg[4] = resolvedUri.toFilePath();
+ sp.send(msg);
+ } else {
+ throw "Cannot resolve scheme (${resolvedUri.scheme}) to file path"
+ " for $resolvedUri";
+ }
+ } catch (e) {
var msg = new List(5);
- msg[0] = tag;
+ msg[0] = -tag;
msg[1] = uri;
msg[2] = resolvedUri.toString();
msg[3] = null;
- msg[4] = resolvedUri.toFilePath();
+ msg[4] = e.toString();
sp.send(msg);
- } else {
- throw "Cannot resolve scheme (${resolvedUri.scheme}) to file path"
- " for $resolvedUri";
}
- } catch (e) {
- var msg = new List(5);
- msg[0] = -tag;
- msg[1] = uri;
- msg[2] = resolvedUri.toString();
- msg[3] = null;
- msg[4] = e.toString();
- sp.send(msg);
- }
+ });
break;
default:
_log('Unknown loader request tag=$tag from $isolateId');
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698