From 8829b7d9567a63c5c548272e61447bc2bfdddb12 Mon Sep 17 00:00:00 2001 From: Justin Bronn Date: Sat, 11 Sep 2010 02:30:39 +0000 Subject: [PATCH] [1.2.X] Fixed #12632 -- Improved performance of `SortedDict`. Thanks, Alex Gaynor. Backport of r13742 from trunk. git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.2.X@13743 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/utils/datastructures.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/django/utils/datastructures.py b/django/utils/datastructures.py index 3cbbe27b91..d73963fdce 100644 --- a/django/utils/datastructures.py +++ b/django/utils/datastructures.py @@ -99,9 +99,11 @@ class SortedDict(dict): self.keyOrder = data.keys() else: self.keyOrder = [] + seen = set() for key, value in data: - if key not in self.keyOrder: + if key not in seen: self.keyOrder.append(key) + seen.add(key) def __deepcopy__(self, memo): return self.__class__([(key, deepcopy(value, memo))