summaryrefslogtreecommitdiffstats
path: root/bin
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2008-05-05 21:07:53 +0000
committerZac Medico <zmedico@gentoo.org>2008-05-05 21:07:53 +0000
commit3ed091443c53bff42ec1b8c9b5a1b8fa8b9a3e71 (patch)
tree3dcf1c94be39a721820ce1f11e3497651220391f /bin
parent652f991f7df7234d0ad518049de7b3ade5e520dd (diff)
downloadportage-3ed091443c53bff42ec1b8c9b5a1b8fa8b9a3e71.tar.gz
portage-3ed091443c53bff42ec1b8c9b5a1b8fa8b9a3e71.tar.bz2
portage-3ed091443c53bff42ec1b8c9b5a1b8fa8b9a3e71.zip
Cache results for Task.__hash__() calls. (trunk r10210)
svn path=/main/branches/2.1.2/; revision=10211
Diffstat (limited to 'bin')
-rwxr-xr-xbin/emerge7
1 files changed, 5 insertions, 2 deletions
diff --git a/bin/emerge b/bin/emerge
index 89e9a6430..4cc690f38 100755
--- a/bin/emerge
+++ b/bin/emerge
@@ -1361,7 +1361,7 @@ def show_masked_packages(masked_packages):
return have_eapi_mask
class Task(SlotObject):
- __slots__ = ("_hash_key",)
+ __slots__ = ("_hash_key", "_hash_value")
def _get_hash_key(self):
hash_key = getattr(self, "_hash_key", None)
@@ -1376,7 +1376,10 @@ class Task(SlotObject):
return self._get_hash_key() != other
def __hash__(self):
- return hash(self._get_hash_key())
+ hash_value = getattr(self, "_hash_value", None)
+ if hash_value is None:
+ self._hash_value = hash(self._get_hash_key())
+ return self._hash_value
def __len__(self):
return len(self._get_hash_key())