From 0aefe8441c05145234d38cc8ace977179e510d62 Mon Sep 17 00:00:00 2001
From: Dominic Kempf <dominic.kempf@iwr.uni-heidelberg.de>
Date: Wed, 28 Nov 2018 14:31:20 +0100
Subject: [PATCH] Fix cache_restoring context

---
 python/dune/codegen/generation/context.py | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/python/dune/codegen/generation/context.py b/python/dune/codegen/generation/context.py
index cf22ddd4..b90e46a5 100644
--- a/python/dune/codegen/generation/context.py
+++ b/python/dune/codegen/generation/context.py
@@ -37,16 +37,17 @@ class _CacheRestoringContext(object):
     def __enter__(self):
         from dune.codegen.generation.cache import _generators as g
         self.cache = {}
-        for i in g:
-            self.cache[i] = {}
-            for k, v in i._memoize_cache.items():
-                self.cache[i][k] = v
+        for original_func, cache_func in g.items():
+            self.cache[original_func] = {}
+            for k, v in cache_func._memoize_cache.items():
+                self.cache[original_func][k] = v
 
     def __exit__(self, exc_type, exc_value, traceback):
+        from dune.codegen.generation.cache import _generators as g
         for i, c in self.cache.items():
-            i._memoize_cache = {}
+            g[i]._memoize_cache = {}
             for k, v in c.items():
-                i._memoize_cache[k] = v
+                g[i]._memoize_cache[k] = v
 
 
 def cache_restoring():
-- 
GitLab