# HG changeset patch # User David Barts # Date 1577482551 28800 # Node ID 0be0586104b7007b37a8608f92da9c0abd6cdf14 # Parent 152f6aa87d622a41e58d77e80e56f6e5b2ef7729 Plug the leak properly (I hope). diff -r 152f6aa87d62 -r 0be0586104b7 runes.py --- a/runes.py Fri Dec 27 13:30:44 2019 -0800 +++ b/runes.py Fri Dec 27 13:35:51 2019 -0800 @@ -154,16 +154,15 @@ def __getitem__(self, key): view = memoryview(self.buffer) try: - ret = view[key] - try: - if isinstance (ret, int): - return chr(ret) - elif isinstance(ret, memoryview): - return self.codec.decode(ret, 'replace')[0] - else: - raise AssertionError("this shouldn't happen") - finally: - ret.release() + result = view[key] + if isinstance (result, int): + return chr(result) + if isinstance(result, memoryview): + ret = self.codec.decode(result, 'replace')[0] + result.release() + return ret + else: + raise AssertionError("this shouldn't happen") except IndexError: return "" finally: