summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pym/portage/dep.py10
1 files changed, 7 insertions, 3 deletions
diff --git a/pym/portage/dep.py b/pym/portage/dep.py
index a1908276b..bd9b19677 100644
--- a/pym/portage/dep.py
+++ b/pym/portage/dep.py
@@ -393,12 +393,15 @@ class _use_dep(object):
return _use_dep(tokens)
class _AtomCache(type):
- atoms = {}
+ """
+ Cache Atom instances from constructor calls and reuse
+ identical instances when available.
+ """
def __call__(cls, s):
- instance = cls.atoms.get(s)
+ instance = cls._atoms.get(s)
if instance is None:
instance = super(_AtomCache, cls).__call__(s)
- cls.atoms[s] = instance
+ cls._atoms[s] = instance
return instance
class Atom(object):
@@ -409,6 +412,7 @@ class Atom(object):
"""
__metaclass__ = _AtomCache
+ _atoms = {}
_str_methods = ("endswith", "find", "index", "lstrip", "replace",
"startswith", "strip", "rindex", "rfind", "rstrip", "__getitem__",