From 7630fdc037f0cf34d33dc24e65643aa9ec1a84aa Mon Sep 17 00:00:00 2001 From: Mathias Lang Date: Sat, 17 Feb 2024 12:25:44 +0100 Subject: [PATCH] Trivial: Simplify PackageManager's loadInternal --- source/dub/packagemanager.d | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/source/dub/packagemanager.d b/source/dub/packagemanager.d index 0777f199f..a97b87c42 100644 --- a/source/dub/packagemanager.d +++ b/source/dub/packagemanager.d @@ -1415,15 +1415,15 @@ package struct Location { void loadInternal (NativePath pack_path, NativePath packageFile) { - Package p; + import std.algorithm.searching : find; + + // If the package has already been loaded, no need to re-load it. + auto rng = existing_packages.find!(pp => pp.path == pack_path); + if (!rng.empty) + return mgr.addPackages(this.fromPath, rng.front); + try { - foreach (pp; existing_packages) - if (pp.path == pack_path) { - p = pp; - break; - } - if (!p) p = mgr.load(pack_path, packageFile); - mgr.addPackages(this.fromPath, p); + mgr.addPackages(this.fromPath, mgr.load(pack_path, packageFile)); } catch (ConfigException exc) { // Configy error message already include the path logError("Invalid recipe for local package: %S", exc);