catpkgsplit: don't cache results
authorZac Medico <zmedico@gentoo.org>
Sat, 12 May 2012 07:36:15 +0000 (00:36 -0700)
committerZac Medico <zmedico@gentoo.org>
Sat, 12 May 2012 07:36:15 +0000 (00:36 -0700)
The cache has been subtly broken since commit
eb2056631021a04b62c228206e44376f5c7a81ba when the eapi parameter was
added. If necessary, we can add a cpv class (or something like that) in
order to avoid redundant catpkgsplit calls in places like
match_from_list.

pym/portage/versions.py

index 6cb15667e95b4b393676fcfdbd47be8c1a222712..e2761b53e2a0ea938772d201db1d3ac8914c982c 100644 (file)
@@ -288,7 +288,7 @@ def _pkgsplit(mypkg, eapi=None):
 
 _cat_re = re.compile('^%s$' % _cat)
 _missing_cat = 'null'
-catcache={}
+
 def catpkgsplit(mydata, silent=1, eapi=None):
        """
        Takes a Category/Package-Version-Rev and returns a list of each.
@@ -304,10 +304,6 @@ def catpkgsplit(mydata, silent=1, eapi=None):
        3.  if rev does not exist it will be '-r0'
        """
 
-       try:
-               return catcache[mydata]
-       except KeyError:
-               pass
        mysplit = mydata.split('/', 1)
        p_split=None
        if len(mysplit)==1:
@@ -318,10 +314,8 @@ def catpkgsplit(mydata, silent=1, eapi=None):
                if _cat_re.match(cat) is not None:
                        p_split = _pkgsplit(mysplit[1], eapi=eapi)
        if not p_split:
-               catcache[mydata]=None
                return None
        retval = (cat, p_split[0], p_split[1], p_split[2])
-       catcache[mydata]=retval
        return retval
 
 def pkgsplit(mypkg, silent=1, eapi=None):