1 |
Author: zmedico |
2 |
Date: 2008-05-05 21:07:53 +0000 (Mon, 05 May 2008) |
3 |
New Revision: 10211 |
4 |
|
5 |
Modified: |
6 |
main/branches/2.1.2/bin/emerge |
7 |
Log: |
8 |
Cache results for Task.__hash__() calls. (trunk r10210) |
9 |
|
10 |
|
11 |
Modified: main/branches/2.1.2/bin/emerge |
12 |
=================================================================== |
13 |
--- main/branches/2.1.2/bin/emerge 2008-05-05 21:06:30 UTC (rev 10210) |
14 |
+++ main/branches/2.1.2/bin/emerge 2008-05-05 21:07:53 UTC (rev 10211) |
15 |
@@ -1361,7 +1361,7 @@ |
16 |
return have_eapi_mask |
17 |
|
18 |
class Task(SlotObject): |
19 |
- __slots__ = ("_hash_key",) |
20 |
+ __slots__ = ("_hash_key", "_hash_value") |
21 |
|
22 |
def _get_hash_key(self): |
23 |
hash_key = getattr(self, "_hash_key", None) |
24 |
@@ -1376,7 +1376,10 @@ |
25 |
return self._get_hash_key() != other |
26 |
|
27 |
def __hash__(self): |
28 |
- return hash(self._get_hash_key()) |
29 |
+ hash_value = getattr(self, "_hash_value", None) |
30 |
+ if hash_value is None: |
31 |
+ self._hash_value = hash(self._get_hash_key()) |
32 |
+ return self._hash_value |
33 |
|
34 |
def __len__(self): |
35 |
return len(self._get_hash_key()) |
36 |
|
37 |
-- |
38 |
gentoo-commits@l.g.o mailing list |