1 |
Author: zmedico |
2 |
Date: 2008-05-05 21:06:30 +0000 (Mon, 05 May 2008) |
3 |
New Revision: 10210 |
4 |
|
5 |
Modified: |
6 |
main/trunk/pym/_emerge/__init__.py |
7 |
Log: |
8 |
Cache results for Task.__hash__() calls. |
9 |
|
10 |
|
11 |
Modified: main/trunk/pym/_emerge/__init__.py |
12 |
=================================================================== |
13 |
--- main/trunk/pym/_emerge/__init__.py 2008-05-05 19:30:23 UTC (rev 10209) |
14 |
+++ main/trunk/pym/_emerge/__init__.py 2008-05-05 21:06:30 UTC (rev 10210) |
15 |
@@ -1220,7 +1220,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 |
@@ -1235,7 +1235,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 |