summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2016-06-12 19:28:43 +0300
committerLars Wirzenius <liw@liw.fi>2016-06-12 19:28:43 +0300
commit230cd70f9507b0fee25f1b73f2562293eda7f704 (patch)
tree3969c1993c7f6e6465ef2004b8e43cfec0843ef7
parent8392c5df43406073eea16e60226b919ae7234749 (diff)
downloadobnam-230cd70f9507b0fee25f1b73f2562293eda7f704.tar.gz
try to save memory
-rw-r--r--meliaereader/reader.py11
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()