X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/9d3112aad388b4369a339b851aa2507a02bb2d4f..2c9a0e18d4ad0b5a73abb5466ea2f70b61daf7fa:/lib/python/Components/Element.py diff --git a/lib/python/Components/Element.py b/lib/python/Components/Element.py index baab4cfb..2af57793 100644 --- a/lib/python/Components/Element.py +++ b/lib/python/Components/Element.py @@ -8,11 +8,12 @@ from Tools.CList import CList def cached(f): name = f.__name__ def wrapper(self): - if self.cache is None: + cache = self.cache + if cache is None: return f(self) - if name not in self.cache: - self.cache[name] = (True, f(self)) - return self.cache[name][1] + if name not in cache: + cache[name] = (True, f(self)) + return cache[name][1] return wrapper class Element(object): @@ -48,11 +49,13 @@ class Element(object): # we should not disconnect from upstream if # there are still elements depending on us. assert len(self.downstream_elements) == 0, "there are still downstream elements left" - + # Sources don't have a source themselves. don't do anything here. if self.source is not None: self.source.disconnectDownstream(self) - + # sources are owned by the Screen, so don't destroy them here. + self.destroy() + def disconnectDownstream(self, downstream): self.downstream_elements.remove(downstream) if self.master == downstream: @@ -89,3 +92,6 @@ class Element(object): def doSuspend(self, suspend): pass + + def destroy(self): + pass