From cc00dc9e2e5a0369580c87a6da72f71e863cdb02 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Mon, 5 May 2008 18:40:49 +0000 Subject: * In vardbapi.cpv_all() use catpkgsplit() for validation since that's what with cp_all() uses. * Use the listdir() dirsonly=1 parameter to avoid unnecessary stat calls via os.path.isdir(). svn path=/main/trunk/; revision=10204 --- pym/portage/dbapi/vartree.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'pym') diff --git a/pym/portage/dbapi/vartree.py b/pym/portage/dbapi/vartree.py index b12a1993a..34b8def7b 100644 --- a/pym/portage/dbapi/vartree.py +++ b/pym/portage/dbapi/vartree.py @@ -460,13 +460,19 @@ class vardbapi(dbapi): continue if not self._category_re.match(x): continue - for y in listdir(basepath + x, EmptyOnError=1): + for y in listdir(basepath + x, EmptyOnError=1, dirsonly=1): if self._excluded_dirs.match(y) is not None: continue subpath = x + "/" + y # -MERGING- should never be a cpv, nor should files. - if os.path.isdir(basepath + subpath) and (pkgsplit(y) is not None): - returnme += [subpath] + try: + if catpkgsplit(subpath) is None: + self.invalidentry(os.path.join(self.root, subpath)) + continue + except portage.exception.InvalidData: + self.invalidentry(os.path.join(self.root, subpath)) + continue + returnme.append(subpath) return returnme def cp_all(self, use_cache=1): -- cgit v1.2.3-1-g7c22