summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pym/_emerge/depgraph.py7
1 files changed, 5 insertions, 2 deletions
diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py
index fd33beb2a..d7d658a6f 100644
--- a/pym/_emerge/depgraph.py
+++ b/pym/_emerge/depgraph.py
@@ -1933,8 +1933,6 @@ class depgraph(object):
args_set.add(atom)
self._dynamic_config._set_atoms.clear()
- self._dynamic_config._set_atoms.update(chain.from_iterable(
- pset.getAtoms() for pset in self._dynamic_config._sets.values()))
atom_arg_map = self._dynamic_config._atom_arg_map
atom_arg_map.clear()
@@ -1942,8 +1940,11 @@ class depgraph(object):
# happens at a later stage and we don't want to make
# any state changes here that aren't reversed by a
# another call to this method.
+ set_atoms = []
for arg in self._expand_set_args(args, add_to_digraph=False):
for atom in arg.pset.getAtoms():
+ if arg.root_config.root == self._frozen_config.target_root:
+ set_atoms.append(atom)
atom_key = (atom, arg.root_config.root)
refs = atom_arg_map.get(atom_key)
if refs is None:
@@ -1952,6 +1953,8 @@ class depgraph(object):
if arg not in refs:
refs.append(arg)
+ self._dynamic_config._set_atoms.update(set_atoms)
+
# Invalidate the package selection cache, since
# arguments influence package selections.
self._dynamic_config._highest_pkg_cache.clear()