summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2008-05-31 23:16:16 +0000
committerZac Medico <zmedico@gentoo.org>2008-05-31 23:16:16 +0000
commit35d0496da473d3e680f2ad73aa43d09e0b8f44b1 (patch)
treecd5af32465ad7376f76fef1b78553d51b1f0ce58
parentFix create_world_atom() to take a Package instance in it's arguments. (diff)
downloadportage-multirepo-35d0496da473d3e680f2ad73aa43d09e0b8f44b1.tar.gz
portage-multirepo-35d0496da473d3e680f2ad73aa43d09e0b8f44b1.tar.bz2
portage-multirepo-35d0496da473d3e680f2ad73aa43d09e0b8f44b1.zip
Make PackageSet._setAtoms() use existing Atom instances when available.
(trunk r10523) svn path=/main/branches/2.1.2/; revision=10524
-rwxr-xr-xbin/emerge16
1 files changed, 11 insertions, 5 deletions
diff --git a/bin/emerge b/bin/emerge
index 22b91130..818cf11c 100755
--- a/bin/emerge
+++ b/bin/emerge
@@ -791,11 +791,17 @@ class InternalPackageSet(object):
self._atoms.clear()
self._nonatoms.clear()
def add(self, atom):
- try:
- atom = portage_dep.Atom(atom)
- except portage_exception.InvalidAtom:
- self._nonatoms.add(atom)
- return
+ if not isinstance(atom, portage_dep.Atom):
+ if isinstance(atom, basestring):
+ atom = atom.strip()
+ if not atom:
+ return
+ try:
+ atom = portage_dep.Atom(atom)
+ except portage_exception.InvalidAtom:
+ self._nonatoms.add(atom)
+ return
+
cp_list = self._atoms.get(atom.cp)
if cp_list is None:
cp_list = []