1
0
Fork 0

Merge pull request #8942 from Seldaek/pool-builder-unfixing

Fix unfixing of packages when a replacer gets unfixed before a replacee
pull/8956/head
Nils Adermann 2020-06-02 17:26:44 +02:00 committed by GitHub
commit 36f3982285
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 7 additions and 3 deletions

View File

@ -113,7 +113,7 @@ class PoolBuilder
$request->fixPackage($lockedPackage); $request->fixPackage($lockedPackage);
$lockedName = $lockedPackage->getName(); $lockedName = $lockedPackage->getName();
// remember which packages we skipped loading remote content for in this partial update // remember which packages we skipped loading remote content for in this partial update
$this->skippedLoad[$lockedPackage->getName()] = $lockedName; $this->skippedLoad[$lockedName] = $lockedName;
foreach ($lockedPackage->getReplaces() as $link) { foreach ($lockedPackage->getReplaces() as $link) {
$this->skippedLoad[$link->getTarget()] = $lockedName; $this->skippedLoad[$link->getTarget()] = $lockedName;
} }
@ -413,8 +413,12 @@ class PoolBuilder
} }
} }
if (
// if we unfixed a replaced package name, we also need to unfix the replacer itself // if we unfixed a replaced package name, we also need to unfix the replacer itself
if ($this->skippedLoad[$name] !== $name) { $this->skippedLoad[$name] !== $name
// as long as it was not unfixed yet
&& isset($this->skippedLoad[$this->skippedLoad[$name]])
) {
$this->unfixPackage($request, $this->skippedLoad[$name]); $this->unfixPackage($request, $this->skippedLoad[$name]);
} }