diff options
-rw-r--r-- | pym/_emerge/depgraph.py | 7 |
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() |