summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pym/portage/dbapi/porttree.py6
1 files changed, 4 insertions, 2 deletions
diff --git a/pym/portage/dbapi/porttree.py b/pym/portage/dbapi/porttree.py
index d47f6fd9d..d6fd4a172 100644
--- a/pym/portage/dbapi/porttree.py
+++ b/pym/portage/dbapi/porttree.py
@@ -501,7 +501,8 @@ class portdbapi(dbapi):
def cp_list(self, mycp, use_cache=1, mytree=None):
if self.frozen and mytree is None:
mylist = self.xcache["match-all"].get(mycp)
- if mylist is not None:
+ # cp_list() doesn't expand old-style virtuals
+ if mylist and mylist[0].startswith(mycp):
return mylist[:]
mysplit = mycp.split("/")
invalid_category = mysplit[0] not in self._categories
@@ -527,7 +528,8 @@ class portdbapi(dbapi):
else:
mylist = d.keys()
if self.frozen and mytree is None:
- self.xcache["match-all"][mycp] = mylist[:]
+ if not (not mylist and mycp.startswith("virtual/")):
+ self.xcache["match-all"][mycp] = mylist[:]
return mylist
def freeze(self):