diff options
author | Lars Wirzenius <liw@liw.fi> | 2016-06-12 19:28:43 +0300 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2016-06-12 19:28:43 +0300 |
commit | 230cd70f9507b0fee25f1b73f2562293eda7f704 (patch) | |
tree | 3969c1993c7f6e6465ef2004b8e43cfec0843ef7 | |
parent | 8392c5df43406073eea16e60226b919ae7234749 (diff) | |
download | obnam-230cd70f9507b0fee25f1b73f2562293eda7f704.tar.gz |
try to save memory
-rw-r--r-- | meliaereader/reader.py | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/meliaereader/reader.py b/meliaereader/reader.py index ff83a416..8432f3f2 100644 --- a/meliaereader/reader.py +++ b/meliaereader/reader.py @@ -100,10 +100,17 @@ class MeliaeReader(object): return grown def compute_closures(self): - for ref in self._objs.keys(): + all_refs = self._objs.keys() + for i, ref in enumerate(all_refs): sys.stderr.write('{} closures left\n'.format( len(self) - len(self._closures))) - self._closures[ref] = self._simple_get_closure(ref) + closure = self._simple_get_closure(ref) + for j in range(0, i): + j_ref = all_refs[j] + if self._closures[j_ref] == closure: + closure = self._closures[j_ref] + break + self._closures[ref] = closure def _simple_get_closure(self, ref): # pragma: no cover closure = set() |