1 |
Author: zmedico |
2 |
Date: 2009-07-02 23:56:18 +0000 (Thu, 02 Jul 2009) |
3 |
New Revision: 13758 |
4 |
|
5 |
Modified: |
6 |
main/trunk/pym/_emerge/RootConfig.py |
7 |
main/trunk/pym/_emerge/depgraph.py |
8 |
Log: |
9 |
Move RootConfig.visible_pkgs to dynamic_config._visible_pkgs, so RootConfig |
10 |
can be considered entirely "frozen". |
11 |
|
12 |
|
13 |
Modified: main/trunk/pym/_emerge/RootConfig.py |
14 |
=================================================================== |
15 |
--- main/trunk/pym/_emerge/RootConfig.py 2009-07-02 17:39:38 UTC (rev 13757) |
16 |
+++ main/trunk/pym/_emerge/RootConfig.py 2009-07-02 23:56:18 UTC (rev 13758) |
17 |
@@ -28,5 +28,3 @@ |
18 |
self.sets = {} |
19 |
else: |
20 |
self.sets = self.setconfig.getSets() |
21 |
- self.visible_pkgs = PackageVirtualDbapi(self.settings) |
22 |
- |
23 |
|
24 |
Modified: main/trunk/pym/_emerge/depgraph.py |
25 |
=================================================================== |
26 |
--- main/trunk/pym/_emerge/depgraph.py 2009-07-02 17:39:38 UTC (rev 13757) |
27 |
+++ main/trunk/pym/_emerge/depgraph.py 2009-07-02 23:56:18 UTC (rev 13758) |
28 |
@@ -123,6 +123,7 @@ |
29 |
pass |
30 |
filtered_tree.dbapi = _dep_check_composite_db(depgraph, myroot) |
31 |
dynamic_config._filtered_trees[myroot]["porttree"] = filtered_tree |
32 |
+ dynamic_config._visible_pkgs[myroot] = PackageVirtualDbapi(vardb.settings) |
33 |
|
34 |
# Passing in graph_tree as the vartree here could lead to better |
35 |
# atom selections in some cases by causing atoms for packages that |
36 |
@@ -177,6 +178,9 @@ |
37 |
# Contains a filtered view of preferred packages that are selected |
38 |
# from available repositories. |
39 |
self._filtered_trees = {} |
40 |
+ # Caches visible packages returned from _select_package, for use in |
41 |
+ # depgraph._iter_atoms_for_pkg() SLOT logic. |
42 |
+ self._visible_pkgs = {} |
43 |
# All Package instances |
44 |
self._pkg_cache = {} |
45 |
#contains the args created by select_files |
46 |
@@ -1062,7 +1066,8 @@ |
47 |
if atom_cp != pkg.cp and \ |
48 |
self._have_new_virt(pkg.root, atom_cp): |
49 |
continue |
50 |
- visible_pkgs = root_config.visible_pkgs.match_pkgs(atom) |
51 |
+ visible_pkgs = \ |
52 |
+ self._dynamic_config._visible_pkgs[pkg.root].match_pkgs(atom) |
53 |
visible_pkgs.reverse() # descending order |
54 |
higher_slot = None |
55 |
for visible_pkg in visible_pkgs: |
56 |
@@ -1889,7 +1894,7 @@ |
57 |
settings = pkg.root_config.settings |
58 |
if visible(settings, pkg) and not (pkg.installed and \ |
59 |
settings._getMissingKeywords(pkg.cpv, pkg.metadata)): |
60 |
- pkg.root_config.visible_pkgs.cpv_inject(pkg) |
61 |
+ self._dynamic_config._visible_pkgs[pkg.root].cpv_inject(pkg) |
62 |
return ret |
63 |
|
64 |
def _select_pkg_highest_available_imp(self, root, atom, onlydeps=False): |