| Index: lib/src/packages_io_impl.dart
|
| diff --git a/lib/src/packages_io_impl.dart b/lib/src/packages_io_impl.dart
|
| index db39bdb58c124fe8f6499afd63552c77068523cc..0e9474639420d7552a6f0d524cfd05f71b161121 100644
|
| --- a/lib/src/packages_io_impl.dart
|
| +++ b/lib/src/packages_io_impl.dart
|
| @@ -14,10 +14,15 @@ import "packages_impl.dart";
|
| /// A [Packages] implementation based on a local directory.
|
| class FilePackagesDirectoryPackages extends PackagesBase {
|
| final Directory _packageDir;
|
| + final Map<String, Uri> _packageToBaseUriMap = <String, Uri>{};
|
| +
|
| FilePackagesDirectoryPackages(this._packageDir);
|
|
|
| - Uri getBase(String packageName) =>
|
| - new Uri.file(path.join(_packageDir.path, packageName, '.'));
|
| + Uri getBase(String packageName) {
|
| + return _packageToBaseUriMap.putIfAbsent(packageName, () {
|
| + return new Uri.file(path.join(_packageDir.path, packageName, '.'));
|
| + });
|
| + }
|
|
|
| Iterable<String> _listPackageNames() {
|
| return _packageDir
|
|
|