summaryrefslogtreecommitdiffstats
path: root/pym/portage/package/ebuild/config.py
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2012-06-01 17:13:13 -0700
committerZac Medico <zmedico@gentoo.org>2012-06-01 17:13:13 -0700
commit415636896a148cac2c6f4406d80c669feb780f5e (patch)
tree289864329ec67c519214ea91938c369b1d98bc30 /pym/portage/package/ebuild/config.py
parent09980f19e584b644b9e2cf4d5e1e0369b6062ca1 (diff)
downloadportage-415636896a148cac2c6f4406d80c669feb780f5e.tar.gz
portage-415636896a148cac2c6f4406d80c669feb780f5e.tar.bz2
portage-415636896a148cac2c6f4406d80c669feb780f5e.zip
config: lazy VirtualsManager instantiation
Diffstat (limited to 'pym/portage/package/ebuild/config.py')
-rw-r--r--pym/portage/package/ebuild/config.py13
1 files changed, 10 insertions, 3 deletions
diff --git a/pym/portage/package/ebuild/config.py b/pym/portage/package/ebuild/config.py
index 046ec465f..21fc1d529 100644
--- a/pym/portage/package/ebuild/config.py
+++ b/pym/portage/package/ebuild/config.py
@@ -271,7 +271,9 @@ class config(object):
#all LicenseManager instances.
self._license_manager = clone._license_manager
- self._virtuals_manager = copy.deepcopy(clone._virtuals_manager)
+ # force instantiation of lazy objects when cloning, so
+ # that they're not instantiated more than once
+ self._virtuals_manager_obj = copy.deepcopy(clone._virtuals_manager)
self._accept_properties = copy.deepcopy(clone._accept_properties)
self._ppropertiesdict = copy.deepcopy(clone._ppropertiesdict)
@@ -282,6 +284,7 @@ class config(object):
# lazily instantiated objects
self._keywords_manager_obj = None
self._mask_manager_obj = None
+ self._virtuals_manager_obj = None
locations_manager = LocationsManager(config_root=config_root,
config_profile_path=config_profile_path, eprefix=eprefix,
@@ -601,8 +604,6 @@ class config(object):
self._license_manager.extract_global_changes( \
self.configdict["conf"].get("ACCEPT_LICENSE", ""))
- self._virtuals_manager = VirtualsManager(self.profiles)
-
if local_config:
#package.properties
propdict = grabdict_package(os.path.join(
@@ -903,6 +904,12 @@ class config(object):
return self._mask_manager_obj
@property
+ def _virtuals_manager(self):
+ if self._virtuals_manager_obj is None:
+ self._virtuals_manager_obj = VirtualsManager(self.profiles)
+ return self._virtuals_manager_obj
+
+ @property
def pkeywordsdict(self):
result = self._keywords_manager.pkeywordsdict.copy()
for k, v in result.items():