diff options
Diffstat (limited to 'python')
| -rw-r--r-- | python/binaryview.py | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/python/binaryview.py b/python/binaryview.py index 092f9bef..ccd4fba3 100644 --- a/python/binaryview.py +++ b/python/binaryview.py @@ -2605,18 +2605,25 @@ class BinaryView: self._platform = None self._endianness = None + def _cleanup(self): + if core is None: + return + for i in self._notifications.values(): + i._unregister() + self._notifications.clear() + if self.handle is not None: + core.BNFreeBinaryView(self.handle) + self.handle = None + def __enter__(self) -> 'BinaryView': return self def __exit__(self, type, value, traceback): + self._cleanup() self.file.close() def __del__(self): - if core is None: - return - for i in self._notifications.values(): - i._unregister() - core.BNFreeBinaryView(self.handle) + self._cleanup() def __repr__(self): start = self.start |
