package_daemon: fix an issue with package overwrite

When overwriting a package the sequence is: remove old, add new package.
On remove we add package to ToBeDeactivated set. This is ok.
On adding new package there is a check if package exists or not. On true
return. But package still in ToBeDeactivated set.

Fixes #10038

Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>
Signed-off-by: Axel Dörfler <axeld@pinc-software.de>
This commit is contained in:
Sergey Avilov 2017-06-29 16:16:06 +03:00 committed by Augustin Cavalier
parent d70f22ac30
commit a5fb17bc65

View File

@ -862,6 +862,12 @@ INFORM("Volume::_PackagesEntryCreated(\"%s\")\n", name);
"\"%s\"\n", name);
}
// Remove the package from the packages-to-be-deactivated set, if it is in
// there (unlikely, unless we see a remove-create sequence).
PackageSet::iterator it = fPackagesToBeDeactivated.find(package);
if (it != fPackagesToBeDeactivated.end())
fPackagesToBeDeactivated.erase(it);
return;
}