PluginProbe
UsersWP – Front-end login form, User Registration, User Profile & Members Directory plugin for WP / 1.2.76
UsersWP – Front-end login form, User Registration, User Profile & Members Directory plugin for WP v1.2.76
1.2.76 1.2.75 1.2.74 1.2.73 1.2.72 1.2.71 1.2.70 1.2.69 1.2.68 1.2.67 1.2.66 1.2.65 1.2.64 1.2.63 trunk 1.0.10 1.0.11 1.0.12 1.0.13 1.0.14 1.0.15 1.0.16 1.0.17 1.0.18 1.0.19 All 176 releases
← All changes | vendor/composer/InstalledVersions.php +18 -2 1.2.64 → 1.2.76 View file →
@@ -38,8 +38,13 @@
38 38 */
39 39 private static $installed;
40 40
41 41 /**
42 + * @var bool
43 + */
44 + private static $installedIsLocalDir;
45 +
46 + /**
42 47 * @var bool|null
43 48 */
44 49 private static $canGetVendors;
45 50
@@ -314,8 +319,14 @@
314 319 public static function reload($data)
315 320 {
316 321 self::$installed = $data;
317 322 self::$installedByVendor = array();
323 +
324 + // when using reload, we disable the duplicate protection to ensure that self::$installed data is
325 + // always returned, but we cannot know whether it comes from the installed.php in __DIR__ or not,
326 + // so we have to assume it does not, and that may result in duplicate data being returned when listing
327 + // all installed packages for example
328 + self::$installedIsLocalDir = false;
318 329 }
319 330
320 331 /**
321 332 * @return string
@@ -342,9 +353,11 @@
342 353 $installed = array();
343 354 $copiedLocalDir = false;
344 355
345 356 if (self::$canGetVendors) {
357 + $selfDir = self::getSelfDir();
346 358 foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
359 + $vendorDir = strtr($vendorDir, '\\', '/');
347 360 if (isset(self::$installedByVendor[$vendorDir])) {
348 361 $installed[] = self::$installedByVendor[$vendorDir];
349 362 } elseif (is_file($vendorDir.'/composer/installed.php')) {
350 363 /** @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 */
@@ -350,12 +363,15 @@
350 363 /** @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 */
351 364 $required = require $vendorDir.'/composer/installed.php';
352 365 self::$installedByVendor[$vendorDir] = $required;
353 366 $installed[] = $required;
354 - if (strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {
367 + if (self::$installed === null && $vendorDir.'/composer' === $selfDir) {
355 368 self::$installed = $required;
356 - $copiedLocalDir = true;
369 + self::$installedIsLocalDir = true;
357 370 }
371 + }
372 + if (self::$installedIsLocalDir && $vendorDir.'/composer' === $selfDir) {
373 + $copiedLocalDir = true;
358 374 }
359 375 }
360 376 }
361 377