diff options
author | Zac Medico <zmedico@gentoo.org> | 2008-05-23 18:51:58 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2008-05-23 18:51:58 +0000 |
commit | 5b9e9d1bb12a636f06da47c138446f3ac4ac7476 (patch) | |
tree | a01b65cbad37b9c95c3ad2c3ecd4e5ae571b7e9e | |
parent | 594817e3704083bf8fe5ca606392d009b6fbf0f5 (diff) | |
download | portage-5b9e9d1bb12a636f06da47c138446f3ac4ac7476.tar.gz portage-5b9e9d1bb12a636f06da47c138446f3ac4ac7476.tar.bz2 portage-5b9e9d1bb12a636f06da47c138446f3ac4ac7476.zip |
Bug #220671 - Fix 'RuntimeError: Set changed size during iteration' error.
svn path=/main/trunk/; revision=10388
-rw-r--r-- | pym/portage/dbapi/vartree.py | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/pym/portage/dbapi/vartree.py b/pym/portage/dbapi/vartree.py index f1923b17f..a5d73843a 100644 --- a/pym/portage/dbapi/vartree.py +++ b/pym/portage/dbapi/vartree.py @@ -1779,7 +1779,9 @@ class dblink(object): # inject files that should be preserved into our image dir import shutil missing_paths = [] - for x in candidates: + candidates_stack = list(candidates) + while candidates_stack: + x = candidates_stack.pop() # skip existing files so the 'new' libs aren't overwritten if os.path.exists(os.path.join(srcroot, x.lstrip(os.sep))): missing_paths.append(x) @@ -1802,6 +1804,7 @@ class dblink(object): if linktarget[0] != os.sep: linktarget = os.path.join(os.path.dirname(x), linktarget) candidates.add(linktarget) + candidates_stack.append(linktarget) else: shutil.copy2(os.path.join(destroot, x.lstrip(os.sep)), os.path.join(srcroot, x.lstrip(os.sep))) |