1 |
commit: 415636896a148cac2c6f4406d80c669feb780f5e |
2 |
Author: Zac Medico <zmedico <AT> gentoo <DOT> org> |
3 |
AuthorDate: Sat Jun 2 00:13:13 2012 +0000 |
4 |
Commit: Zac Medico <zmedico <AT> gentoo <DOT> org> |
5 |
CommitDate: Sat Jun 2 00:13:13 2012 +0000 |
6 |
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=41563689 |
7 |
|
8 |
config: lazy VirtualsManager instantiation |
9 |
|
10 |
--- |
11 |
pym/portage/package/ebuild/config.py | 13 ++++++++++--- |
12 |
1 files changed, 10 insertions(+), 3 deletions(-) |
13 |
|
14 |
diff --git a/pym/portage/package/ebuild/config.py b/pym/portage/package/ebuild/config.py |
15 |
index 046ec46..21fc1d5 100644 |
16 |
--- a/pym/portage/package/ebuild/config.py |
17 |
+++ b/pym/portage/package/ebuild/config.py |
18 |
@@ -271,7 +271,9 @@ class config(object): |
19 |
#all LicenseManager instances. |
20 |
self._license_manager = clone._license_manager |
21 |
|
22 |
- self._virtuals_manager = copy.deepcopy(clone._virtuals_manager) |
23 |
+ # force instantiation of lazy objects when cloning, so |
24 |
+ # that they're not instantiated more than once |
25 |
+ self._virtuals_manager_obj = copy.deepcopy(clone._virtuals_manager) |
26 |
|
27 |
self._accept_properties = copy.deepcopy(clone._accept_properties) |
28 |
self._ppropertiesdict = copy.deepcopy(clone._ppropertiesdict) |
29 |
@@ -282,6 +284,7 @@ class config(object): |
30 |
# lazily instantiated objects |
31 |
self._keywords_manager_obj = None |
32 |
self._mask_manager_obj = None |
33 |
+ self._virtuals_manager_obj = None |
34 |
|
35 |
locations_manager = LocationsManager(config_root=config_root, |
36 |
config_profile_path=config_profile_path, eprefix=eprefix, |
37 |
@@ -601,8 +604,6 @@ class config(object): |
38 |
self._license_manager.extract_global_changes( \ |
39 |
self.configdict["conf"].get("ACCEPT_LICENSE", "")) |
40 |
|
41 |
- self._virtuals_manager = VirtualsManager(self.profiles) |
42 |
- |
43 |
if local_config: |
44 |
#package.properties |
45 |
propdict = grabdict_package(os.path.join( |
46 |
@@ -903,6 +904,12 @@ class config(object): |
47 |
return self._mask_manager_obj |
48 |
|
49 |
@property |
50 |
+ def _virtuals_manager(self): |
51 |
+ if self._virtuals_manager_obj is None: |
52 |
+ self._virtuals_manager_obj = VirtualsManager(self.profiles) |
53 |
+ return self._virtuals_manager_obj |
54 |
+ |
55 |
+ @property |
56 |
def pkeywordsdict(self): |
57 |
result = self._keywords_manager.pkeywordsdict.copy() |
58 |
for k, v in result.items(): |