summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2006-12-30 03:54:36 +0000
committerZac Medico <zmedico@gentoo.org>2006-12-30 03:54:36 +0000
commitbab58cf5d43a0289d7c741b4aa62f83737798ea0 (patch)
tree47da7076de5c2ecdff254f34245cfcb7394c64ce
parenta0c19c9b7b5add9c3795d9ca89edd354751d69d1 (diff)
downloadportage-bab58cf5d43a0289d7c741b4aa62f83737798ea0.tar.gz
portage-bab58cf5d43a0289d7c741b4aa62f83737798ea0.tar.bz2
portage-bab58cf5d43a0289d7c741b4aa62f83737798ea0.zip
Be slightly more defensive when loading the vdb/blockers caches.
svn path=/main/trunk/; revision=5421
-rwxr-xr-xbin/emerge4
-rw-r--r--pym/portage.py3
2 files changed, 4 insertions, 3 deletions
diff --git a/bin/emerge b/bin/emerge
index 17a54cbc5..6e7cb5558 100755
--- a/bin/emerge
+++ b/bin/emerge
@@ -844,8 +844,8 @@ class BlockerCache(DictMixin):
cache_valid = self._cache_data and \
isinstance(self._cache_data, dict) and \
self._cache_data.get("version") == self._cache_version and \
- self._cache_data["virtuals"] == self._virtuals and \
- set(self._cache_data["blockers"]) == self._installed_pkgs
+ self._cache_data.get("virtuals") == self._virtuals and \
+ set(self._cache_data.get("blockers", [])) == self._installed_pkgs
if cache_valid:
for pkg in self._installed_pkgs:
if long(self._vardb.aux_get(pkg, ["COUNTER"])[0]) != \
diff --git a/pym/portage.py b/pym/portage.py
index 642bc1570..249252bb1 100644
--- a/pym/portage.py
+++ b/pym/portage.py
@@ -5070,7 +5070,8 @@ class vardbapi(dbapi):
pass
if not self._aux_cache or \
not isinstance(self._aux_cache, dict) or \
- self._aux_cache.get("version") != self._aux_cache_version:
+ self._aux_cache.get("version") != self._aux_cache_version or \
+ not self._aux_cache.get("packages"):
self._aux_cache = {"version":self._aux_cache_version}
self._aux_cache["packages"] = {}
self._aux_cache["modified"] = False