From 6acf76f7be69131b71721d132b3d6862771ffb33 Mon Sep 17 00:00:00 2001 From: Alexander Aprelev Date: Mon, 19 Mar 2018 11:17:16 -0700 Subject: [PATCH] Use uris for hot reload invalidation. (#15698) * Use uris for hot reload invalidation. * Clean up unneccessary conversions * add final. * Revert sample change --- packages/flutter_tools/lib/src/compile.dart | 18 ++++++++++++++++-- packages/flutter_tools/lib/src/devfs.dart | 2 +- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/packages/flutter_tools/lib/src/compile.dart b/packages/flutter_tools/lib/src/compile.dart index be6623441b7..99258a0665a 100644 --- a/packages/flutter_tools/lib/src/compile.dart +++ b/packages/flutter_tools/lib/src/compile.dart @@ -176,8 +176,8 @@ class ResidentCompiler { final String inputKey = new Uuid().generateV4(); _server.stdin.writeln('recompile ${mainPath != null ? _mapFilename(mainPath) + " ": ""}$inputKey'); - for (String filePath in invalidatedFiles) { - _server.stdin.writeln(_mapFilename(filePath)); + for (String fileUri in invalidatedFiles) { + _server.stdin.writeln(_mapFileUri(fileUri)); } _server.stdin.writeln(inputKey); @@ -276,6 +276,20 @@ class ResidentCompiler { return filename; } + String _mapFileUri(String fileUri) { + if (_fileSystemRoots != null) { + final String filename = Uri.parse(fileUri).toFilePath(); + for (String root in _fileSystemRoots) { + if (filename.startsWith(root)) { + return new Uri( + scheme: _fileSystemScheme, path: filename.substring(root.length)) + .toString(); + } + } + } + return fileUri; + } + Future shutdown() { _server.kill(); return _server.exitCode; diff --git a/packages/flutter_tools/lib/src/devfs.dart b/packages/flutter_tools/lib/src/devfs.dart index 40446d17177..4af38acc05b 100644 --- a/packages/flutter_tools/lib/src/devfs.dart +++ b/packages/flutter_tools/lib/src/devfs.dart @@ -487,7 +487,7 @@ class DevFS { final DevFSContent content = dirtyEntries[uri]; if (content is DevFSFileContent) { filesUris.add(uri); - invalidatedFiles.add(content.file.path); + invalidatedFiles.add(content.file.uri.toString()); numBytes -= content.size; } }