summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2012-10-02 13:22:57 -0700
committerZac Medico <zmedico@gentoo.org>2012-10-02 13:22:57 -0700
commit6571d8b160e2e5d10ef76fcc5fba288d3e494d3e (patch)
tree0d80b5c5e3badb51e72043257d8df47c8f2455cf
parentdebug-print: chgrp ${PORTAGE_GRPNAME:-portage} (diff)
downloadportage-6571d8b160e2e5d10ef76fcc5fba288d3e494d3e.tar.gz
portage-6571d8b160e2e5d10ef76fcc5fba288d3e494d3e.tar.bz2
portage-6571d8b160e2e5d10ef76fcc5fba288d3e494d3e.zip
OrderedDict: fix setitem bug #436974
This fixes some strange behavior triggered during fetch, which is only observable with Python 2.6 since it doesn't have collections.OrderedDict.
-rw-r--r--pym/portage/cache/mappings.py6
1 files changed, 3 insertions, 3 deletions
diff --git a/pym/portage/cache/mappings.py b/pym/portage/cache/mappings.py
index bc8ce9af8..cd39a6ea1 100644
--- a/pym/portage/cache/mappings.py
+++ b/pym/portage/cache/mappings.py
@@ -199,10 +199,10 @@ class OrderedDict(UserDict):
return iter(self._order)
def __setitem__(self, key, item):
- if key in self:
- self._order.remove(key)
+ new_key = key not in self
UserDict.__setitem__(self, key, item)
- self._order.append(key)
+ if new_key:
+ self._order.append(key)
def __delitem__(self, key):
UserDict.__delitem__(self, key)