@@ -32,11 +32,6 @@ class InstalledVersions
3232 */
3333 private static $ installed ;
3434
35- /**
36- * @var bool
37- */
38- private static $ installedIsLocalDir ;
39-
4035 /**
4136 * @var bool|null
4237 */
@@ -314,12 +309,6 @@ public static function reload($data)
314309 {
315310 self ::$ installed = $ data ;
316311 self ::$ installedByVendor = array ();
317-
318- // when using reload, we disable the duplicate protection to ensure that self::$installed data is
319- // always returned, but we cannot know whether it comes from the installed.php in __DIR__ or not,
320- // so we have to assume it does not, and that may result in duplicate data being returned when listing
321- // all installed packages for example
322- self ::$ installedIsLocalDir = false ;
323312 }
324313
325314 /**
@@ -336,24 +325,19 @@ private static function getInstalled()
336325 $ copiedLocalDir = false ;
337326
338327 if (self ::$ canGetVendors ) {
339- $ selfDir = strtr (__DIR__ , '\\' , '/ ' );
340328 foreach (ClassLoader::getRegisteredLoaders () as $ vendorDir => $ loader ) {
341- $ vendorDir = strtr ($ vendorDir , '\\' , '/ ' );
342329 if (isset (self ::$ installedByVendor [$ vendorDir ])) {
343330 $ installed [] = self ::$ installedByVendor [$ vendorDir ];
344331 } elseif (is_file ($ vendorDir .'/composer/installed.php ' )) {
345332 /** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $required */
346333 $ required = require $ vendorDir .'/composer/installed.php ' ;
347334 self ::$ installedByVendor [$ vendorDir ] = $ required ;
348335 $ installed [] = $ required ;
349- if (self :: $ installed === null && $ vendorDir .'/composer ' === $ selfDir ) {
336+ if (strtr ( $ vendorDir .'/composer ' , '\\' , ' / ' ) === strtr ( __DIR__ , '\\' , ' / ' ) ) {
350337 self ::$ installed = $ required ;
351- self :: $ installedIsLocalDir = true ;
338+ $ copiedLocalDir = true ;
352339 }
353340 }
354- if (self ::$ installedIsLocalDir && $ vendorDir .'/composer ' === $ selfDir ) {
355- $ copiedLocalDir = true ;
356- }
357341 }
358342 }
359343
0 commit comments