aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2012-04-22 11:57:25 -0700
committerZac Medico <zmedico@gentoo.org>2012-04-22 11:57:25 -0700
commitd30db49bcaecbdeb20f6d4e180979b60b6260f69 (patch)
treea8c460d319896a5bf4e784ce21d4b8e827e80e44 /pym/portage/dbapi
parentAdd ${T}/build.log symlink to PORT_LOGDIR. (diff)
downloadportage-d30db49bcaecbdeb20f6d4e180979b60b6260f69.tar.gz
portage-d30db49bcaecbdeb20f6d4e180979b60b6260f69.tar.bz2
portage-d30db49bcaecbdeb20f6d4e180979b60b6260f69.zip
dbapi.cp_list: remove special case for virtuals
Since commit d603f1440c814377fbc1965729fd9b6b008cf76d, the match caches use the result from dep_expand for the cache_key, so the caches are free of old-style virtual mappings. This allows the match caches to be safely shared with cp_list.
Diffstat (limited to 'pym/portage/dbapi')
-rw-r--r--pym/portage/dbapi/porttree.py14
-rw-r--r--pym/portage/dbapi/virtual.py5
2 files changed, 8 insertions, 11 deletions
diff --git a/pym/portage/dbapi/porttree.py b/pym/portage/dbapi/porttree.py
index f9d78dcdb..b060dd6a5 100644
--- a/pym/portage/dbapi/porttree.py
+++ b/pym/portage/dbapi/porttree.py
@@ -715,7 +715,8 @@ class portdbapi(dbapi):
return l
def cp_list(self, mycp, use_cache=1, mytree=None):
-
+ # NOTE: Cache can be safely shared with the match cache, since the
+ # match cache uses the result from dep_expand for the cache_key.
if self.frozen and mytree is not None \
and len(self.porttrees) == 1 \
and mytree == self.porttrees[0]:
@@ -728,10 +729,8 @@ class portdbapi(dbapi):
if cachelist is not None:
# Try to propagate this to the match-all cache here for
# repoman since he uses separate match-all caches for each
- # profile (due to old-style virtuals). Do not propagate
- # old-style virtuals since cp_list() doesn't expand them.
- if not (not cachelist and mycp.startswith("virtual/")):
- self.xcache["match-all"][(mycp, mycp)] = cachelist
+ # profile (due to old-style virtuals).
+ self.xcache["match-all"][(mycp, mycp)] = cachelist
return cachelist[:]
mysplit = mycp.split("/")
invalid_category = mysplit[0] not in self._categories
@@ -783,10 +782,7 @@ class portdbapi(dbapi):
if self.frozen and mytree is None:
cachelist = mylist[:]
self.xcache["cp-list"][mycp] = cachelist
- # Do not propagate old-style virtuals since
- # cp_list() doesn't expand them.
- if not (not cachelist and mycp.startswith("virtual/")):
- self.xcache["match-all"][(mycp, mycp)] = cachelist
+ self.xcache["match-all"][(mycp, mycp)] = cachelist
return mylist
def freeze(self):
diff --git a/pym/portage/dbapi/virtual.py b/pym/portage/dbapi/virtual.py
index eed1407fc..8a35d0ce9 100644
--- a/pym/portage/dbapi/virtual.py
+++ b/pym/portage/dbapi/virtual.py
@@ -45,6 +45,8 @@ class fakedbapi(dbapi):
return mycpv in self.cpvdict
def cp_list(self, mycp, use_cache=1, myrepo=None):
+ # NOTE: Cache can be safely shared with the match cache, since the
+ # match cache uses the result from dep_expand for the cache_key.
cache_key = (mycp, mycp)
cachelist = self._match_cache.get(cache_key)
# cp_list() doesn't expand old-style virtuals
@@ -54,8 +56,7 @@ class fakedbapi(dbapi):
if cpv_list is None:
cpv_list = []
self._cpv_sort_ascending(cpv_list)
- if not (not cpv_list and mycp.startswith("virtual/")):
- self._match_cache[cache_key] = cpv_list
+ self._match_cache[cache_key] = cpv_list
return cpv_list[:]
def cp_all(self):