Просмотр исходного кода

Reset package IDs before they can be used in the pool in case there are already some in the cache

Jordi Boggiano 12 лет назад
Родитель
Сommit
5978197b5d

+ 1 - 0
src/Composer/DependencyResolver/Pool.php

@@ -83,6 +83,7 @@ class Pool
 
             if ($repo instanceof ComposerRepository && $repo->hasProviders()) {
                 $this->composerRepos[] = $repo;
+                $repo->resetPackageIds();
             } elseif ($repo instanceof StreamableRepositoryInterface) {
                 foreach ($repo->getMinimalPackages() as $package) {
                     $name = $package['name'];

+ 7 - 0
src/Composer/Repository/ComposerRepository.php

@@ -199,6 +199,13 @@ class ComposerRepository extends ArrayRepository implements NotifiableRepository
         return $this->hasProviders;
     }
 
+    public function resetPackageIds()
+    {
+        foreach ($this->providersByUid as $package) {
+            $package->setId(-1);
+        }
+    }
+
     public function whatProvides(Pool $pool, $name)
     {
         // skip platform packages