summaryrefslogtreecommitdiffstats
path: root/pym/portage/dbapi
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2012-10-08 19:01:45 -0700
committerZac Medico <zmedico@gentoo.org>2012-10-08 19:01:45 -0700
commit960792b9fd0e11b16efdc0b538231288b8727862 (patch)
tree252d9fb260d8cbc35665db1bc1ea04fa8add33de /pym/portage/dbapi
parent3af5846c3c0c10b0cf80ca2e1921b9b7918bc277 (diff)
downloadportage-960792b9fd0e11b16efdc0b538231288b8727862.tar.gz
portage-960792b9fd0e11b16efdc0b538231288b8727862.tar.bz2
portage-960792b9fd0e11b16efdc0b538231288b8727862.zip
_parse_uri_map: preserve order of URIs
Returns a dict of tuples instead of a dict of sets.
Diffstat (limited to 'pym/portage/dbapi')
-rw-r--r--pym/portage/dbapi/porttree.py11
1 files changed, 8 insertions, 3 deletions
diff --git a/pym/portage/dbapi/porttree.py b/pym/portage/dbapi/porttree.py
index dba0ef53d..a5945be59 100644
--- a/pym/portage/dbapi/porttree.py
+++ b/pym/portage/dbapi/porttree.py
@@ -1138,9 +1138,14 @@ def _parse_uri_map(cpv, metadata, use=None):
uri_set = uri_map.get(distfile)
if uri_set is None:
- uri_set = set()
+ # Use OrderedDict to preserve order from SRC_URI
+ # while ensuring uniqueness.
+ uri_set = OrderedDict()
uri_map[distfile] = uri_set
- uri_set.add(uri)
- uri = None
+ uri_set[uri] = True
+
+ # Convert OrderedDicts to tuples.
+ for k, v in uri_map.items():
+ uri_map[k] = tuple(v)
return uri_map