diff options
author | Zac Medico <zmedico@gentoo.org> | 2010-03-02 19:50:33 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2010-03-02 19:50:33 +0000 |
commit | 740048c362ca2f1aa0b1b74b6aa68277e92de535 (patch) | |
tree | 4618c4fb2e9e183639536141952391a2c3b732a0 /pym | |
parent | ad36ecfecd121902aae78681b26828c86e14db6c (diff) | |
download | portage-740048c362ca2f1aa0b1b74b6aa68277e92de535.tar.gz portage-740048c362ca2f1aa0b1b74b6aa68277e92de535.tar.bz2 portage-740048c362ca2f1aa0b1b74b6aa68277e92de535.zip |
Make __iter__ use list.pop() instead of pop(0), for greater efficiency.
(trunk r15296)
svn path=/main/branches/2.1.7/; revision=15535
Diffstat (limited to 'pym')
-rw-r--r-- | pym/portage/cache/flat_hash.py | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/pym/portage/cache/flat_hash.py b/pym/portage/cache/flat_hash.py index f882c2475..a010e5061 100644 --- a/pym/portage/cache/flat_hash.py +++ b/pym/portage/cache/flat_hash.py @@ -122,20 +122,19 @@ class database(fs_template.FsBased): """generator for walking the dir struct""" dirs = [(0, self.location)] len_base = len(self.location) - while len(dirs): + while dirs: + depth, dir_path = dirs.pop() try: - depth = dirs[0][0] - dir_list = os.listdir(dirs[0][1]) + dir_list = os.listdir(dir_path) except OSError as e: if e.errno != errno.ENOENT: raise del e - dirs.pop(0) continue for l in dir_list: if l.endswith(".cpickle"): continue - p = os.path.join(dirs[0][1], l) + p = os.path.join(dir_path, l) st = os.lstat(p) if stat.S_ISDIR(st.st_mode): # Only recurse 1 deep, in order to avoid iteration over @@ -146,4 +145,3 @@ class database(fs_template.FsBased): dirs.append((depth+1, p)) continue yield p[len_base+1:] - dirs.pop(0) |