diff options
author | Zac Medico <zmedico@gentoo.org> | 2009-09-19 17:05:52 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2009-09-19 17:05:52 +0000 |
commit | 2b45f9c05da69af178bc47a77b28e5d133577c42 (patch) | |
tree | 8a71400f819c5f4b67e302fd023c4d820cde80ff /pym/_emerge/depgraph.py | |
parent | 9b8ce4835ede7499df792aa51e4994a284576049 (diff) | |
download | portage-2b45f9c05da69af178bc47a77b28e5d133577c42.tar.gz portage-2b45f9c05da69af178bc47a77b28e5d133577c42.tar.bz2 portage-2b45f9c05da69af178bc47a77b28e5d133577c42.zip |
Avoid lots of redundant Atom constructor calls. Thanks to Marat Radchenko
<marat@slonopotamus.org> for the initial patch from bug #276813.
svn path=/main/trunk/; revision=14282
Diffstat (limited to 'pym/_emerge/depgraph.py')
-rw-r--r-- | pym/_emerge/depgraph.py | 26 |
1 files changed, 10 insertions, 16 deletions
diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py index d52d5ac6a..5b03dc3a2 100644 --- a/pym/_emerge/depgraph.py +++ b/pym/_emerge/depgraph.py @@ -1149,9 +1149,6 @@ class depgraph(object): for atom in selected_atoms[pkg]: try: - - atom = portage.dep.Atom(atom) - mypriority = dep_priority.copy() if not atom.blocker and vardb.match(atom): mypriority.satisfied = True @@ -1306,16 +1303,15 @@ class depgraph(object): atom_arg_map = self._dynamic_config._atom_arg_map root_config = self._frozen_config.roots[pkg.root] for atom in self._dynamic_config._set_atoms.iterAtomsForPackage(pkg): - atom_cp = portage.dep_getkey(atom) - if atom_cp != pkg.cp and \ - self._have_new_virt(pkg.root, atom_cp): + if atom.cp != pkg.cp and \ + self._have_new_virt(pkg.root, atom.cp): continue visible_pkgs = \ self._dynamic_config._visible_pkgs[pkg.root].match_pkgs(atom) visible_pkgs.reverse() # descending order higher_slot = None for visible_pkg in visible_pkgs: - if visible_pkg.cp != atom_cp: + if visible_pkg.cp != atom.cp: continue if pkg >= visible_pkg: # This is descending order, and we're not @@ -1606,9 +1602,8 @@ class depgraph(object): self._spinner_update() dep = Dependency(atom=atom, onlydeps=onlydeps, root=myroot, parent=arg) - atom_cp = portage.dep_getkey(atom) try: - pprovided = pprovideddict.get(portage.dep_getkey(atom)) + pprovided = pprovideddict.get(atom.cp) if pprovided and portage.match_from_list(atom, pprovided): # A provided package has been specified on the command line. self._dynamic_config._pprovided_args.append((arg, atom)) @@ -1651,10 +1646,10 @@ class depgraph(object): return 0, myfavorites self._dynamic_config._missing_args.append((arg, atom)) continue - if atom_cp != pkg.cp: + if atom.cp != pkg.cp: # For old-style virtuals, we need to repeat the # package.provided check against the selected package. - expanded_atom = atom.replace(atom_cp, pkg.cp) + expanded_atom = atom.replace(atom.cp, pkg.cp) pprovided = pprovideddict.get(pkg.cp) if pprovided and \ portage.match_from_list(expanded_atom, pprovided): @@ -2396,7 +2391,7 @@ class depgraph(object): # Filter out any old-style virtual matches if they are # mixed with new-style virtual matches. - cp = portage.dep_getkey(atom) + cp = atom.cp if len(matched_packages) > 1 and \ "virtual" == portage.catsplit(cp)[0]: for pkg in matched_packages: @@ -2737,8 +2732,8 @@ class depgraph(object): for provider_entry in virtuals[blocker.cp]: provider_cp = \ portage.dep_getkey(provider_entry) - atoms.append(blocker.atom.replace( - blocker.cp, provider_cp)) + atoms.append(Atom(blocker.atom.replace( + blocker.cp, provider_cp))) else: atoms = [blocker.atom] @@ -4896,7 +4891,6 @@ class _dep_check_composite_db(portage.dbapi): # any matching slots in the graph db. slots = set() slots.add(pkg.metadata["SLOT"]) - atom_cp = portage.dep_getkey(atom) if pkg.cp.startswith("virtual/"): # For new-style virtual lookahead that occurs inside # dep_check(), examine all slots. This is needed @@ -4917,7 +4911,7 @@ class _dep_check_composite_db(portage.dbapi): ret.append(pkg.cpv) slots.remove(pkg.metadata["SLOT"]) while slots: - slot_atom = "%s:%s" % (atom_cp, slots.pop()) + slot_atom = Atom("%s:%s" % (atom.cp, slots.pop())) pkg, existing = self._depgraph._select_package( self._root, slot_atom) if not pkg: |