summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2008-06-25 20:47:38 +0000
committerZac Medico <zmedico@gentoo.org>2008-06-25 20:47:38 +0000
commit4ac209e6cf6c49d88b06a4ddaa3bacd11695791d (patch)
treee8b882d314daa40f3f58d380c6429800936a775f
parent02e6edaab93028234863f10e628be30f570c2cfc (diff)
downloadportage-4ac209e6cf6c49d88b06a4ddaa3bacd11695791d.tar.gz
portage-4ac209e6cf6c49d88b06a4ddaa3bacd11695791d.tar.bz2
portage-4ac209e6cf6c49d88b06a4ddaa3bacd11695791d.zip
Swap out the whole Package.root_config attribute inside depgraph.break_refs().
svn path=/main/trunk/; revision=10789
-rw-r--r--pym/_emerge/__init__.py19
1 files changed, 8 insertions, 11 deletions
diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py
index 79b38f64d..2f54b6b65 100644
--- a/pym/_emerge/__init__.py
+++ b/pym/_emerge/__init__.py
@@ -3946,17 +3946,14 @@ class depgraph(object):
if not isinstance(node, Package):
continue
- # The visible packages cache has fullfilled it's purpose
- # and it's no longer needed, so free the memory.
- node.root_config.visible_pkgs.clear()
-
- if isinstance(node.root_config.trees["vartree"], FakeVartree):
- # The FakeVartree references the _package_cache which
- # references the depgraph. So that Package instances don't
- # hold the depgraph and FakeVartree on the heap, replace
- # the FakeVartree reference with the real vartree.
- node.root_config.trees["vartree"] = \
- self._trees_orig[node.root]["vartree"]
+ # The FakeVartree references the _package_cache which
+ # references the depgraph. So that Package instances don't
+ # hold the depgraph and FakeVartree on the heap, replace
+ # the RootConfig that references the FakeVartree with the
+ # original RootConfig instance which references the actual
+ # vartree.
+ node.root_config = \
+ self._trees_orig[node.root]["root_config"]
def _resolve_conflicts(self):
if not self._complete_graph():