summaryrefslogtreecommitdiffstats
path: root/pym/eclass_cache.py
diff options
context:
space:
mode:
Diffstat (limited to 'pym/eclass_cache.py')
-rw-r--r--pym/eclass_cache.py12
1 files changed, 8 insertions, 4 deletions
diff --git a/pym/eclass_cache.py b/pym/eclass_cache.py
index 8d2a2bb81..904e63261 100644
--- a/pym/eclass_cache.py
+++ b/pym/eclass_cache.py
@@ -15,6 +15,7 @@ class cache:
self.porttree_root = porttree_root
self.eclasses = {} # {"Name": ("location","_mtime_")}
+ self._eclass_locations = {}
# screw with the porttree ordering, w/out having bash inherit match it, and I'll hurt you.
# ~harring
@@ -38,6 +39,7 @@ class cache:
def update_eclasses(self):
self.eclasses = {}
+ self._eclass_locations = {}
eclass_len = len(".eclass")
for x in [normalize_path(os.path.join(y,"eclass")) for y in self.porttrees]:
if not os.path.isdir(x):
@@ -48,13 +50,14 @@ class cache:
except OSError:
continue
ys=y[:-eclass_len]
- self.eclasses[ys] = (x, long(mtime))
+ self.eclasses[ys] = long(mtime)
+ self._eclass_locations[ys] = x
def is_eclass_data_valid(self, ec_dict):
if not isinstance(ec_dict, dict):
return False
- for eclass, tup in ec_dict.iteritems():
- if eclass not in self.eclasses or tuple(tup) != self.eclasses[eclass]:
+ for eclass, mtime in ec_dict.iteritems():
+ if eclass not in self.eclasses or mtime != self.eclasses[eclass]:
return False
return True
@@ -68,7 +71,8 @@ class cache:
print "ec=",ec_dict
print "inherits=",inherits
raise
- if from_master_only and self.eclasses[x][0] != self._master_eclass_root:
+ if from_master_only and \
+ self._eclass_locations[x] != self._master_eclass_root:
return None
return ec_dict