1 |
commit: 7587568f3133d12ef68b633328954cb838fcaafe |
2 |
Author: Zac Medico <zmedico <AT> gentoo <DOT> org> |
3 |
AuthorDate: Mon Jun 27 06:53:58 2011 +0000 |
4 |
Commit: Zac Medico <zmedico <AT> gentoo <DOT> org> |
5 |
CommitDate: Mon Jun 27 06:53:58 2011 +0000 |
6 |
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=7587568f |
7 |
|
8 |
Package.use: share identical frozenset instances |
9 |
|
10 |
--- |
11 |
pym/_emerge/Package.py | 16 ++++++++++++---- |
12 |
1 files changed, 12 insertions(+), 4 deletions(-) |
13 |
|
14 |
diff --git a/pym/_emerge/Package.py b/pym/_emerge/Package.py |
15 |
index 7a25638..20c72b4 100644 |
16 |
--- a/pym/_emerge/Package.py |
17 |
+++ b/pym/_emerge/Package.py |
18 |
@@ -392,6 +392,9 @@ class Package(Task): |
19 |
__slots__ = ("enabled", "_expand", "_expand_hidden", |
20 |
"_force", "_pkg", "_mask") |
21 |
|
22 |
+ # Share identical frozenset instances when available. |
23 |
+ _frozensets = {} |
24 |
+ |
25 |
def __init__(self, pkg, use_str): |
26 |
self._pkg = pkg |
27 |
self._expand = None |
28 |
@@ -410,12 +413,17 @@ class Package(Task): |
29 |
|
30 |
def _init_force_mask(self): |
31 |
pkgsettings = self._pkg._get_pkgsettings() |
32 |
- self._expand = frozenset( |
33 |
+ frozensets = self._frozensets |
34 |
+ s = frozenset( |
35 |
pkgsettings.get("USE_EXPAND", "").lower().split()) |
36 |
- self._expand_hidden = frozenset( |
37 |
+ self._expand = frozensets.setdefault(s, s) |
38 |
+ s = frozenset( |
39 |
pkgsettings.get("USE_EXPAND_HIDDEN", "").lower().split()) |
40 |
- self._force = pkgsettings.useforce |
41 |
- self._mask = pkgsettings.usemask |
42 |
+ self._expand_hidden = frozensets.setdefault(s, s) |
43 |
+ s = pkgsettings.useforce |
44 |
+ self._force = frozensets.setdefault(s, s) |
45 |
+ s = pkgsettings.usemask |
46 |
+ self._mask = frozensets.setdefault(s, s) |
47 |
|
48 |
@property |
49 |
def expand(self): |