diff options
| author | Peter LaFosse <peter@vector35.com> | 2020-05-02 11:01:35 -0400 |
|---|---|---|
| committer | Peter LaFosse <peter@vector35.com> | 2020-05-03 13:20:56 -0400 |
| commit | 8f1bc5944b849f3ad0cbbd5972d5ab9948ed4d57 (patch) | |
| tree | 43b48da8a1ec93b148575bc3346059e5316e6bf6 /python/filemetadata.py | |
| parent | 5b84fdea8abcb4abba61d07e0d12b4115b516c52 (diff) | |
Fix up equality operators and had hash operators
Diffstat (limited to 'python/filemetadata.py')
| -rw-r--r-- | python/filemetadata.py | 42 |
1 files changed, 21 insertions, 21 deletions
diff --git a/python/filemetadata.py b/python/filemetadata.py index ce88fdce..58afeeec 100644 --- a/python/filemetadata.py +++ b/python/filemetadata.py @@ -88,6 +88,27 @@ class FileMetadata(object): core.BNSetFilename(self.handle, str(filename)) self._nav = None + def __repr__(self): + return "<FileMetadata: %s>" % self.filename + + def __del__(self): + if self.navigation is not None: + core.BNSetFileMetadataNavigationHandler(self.handle, None) + core.BNFreeFileMetadata(self.handle) + + def __eq__(self, other): + if not isinstance(other, self.__class__): + return NotImplemented + return ctypes.addressof(self.handle.contents) == ctypes.addressof(other.handle.contents) + + def __ne__(self, other): + if not isinstance(other, self.__class__): + return NotImplemented + return not (self == other) + + def __hash__(self): + return hash(ctypes.addressof(self.handle.contents)) + @property def nav(self): """ @@ -98,21 +119,6 @@ class FileMetadata(object): def nav(self, value): self._nav = value - def __del__(self): - if self.navigation is not None: - core.BNSetFileMetadataNavigationHandler(self.handle, None) - core.BNFreeFileMetadata(self.handle) - - def __eq__(self, value): - if not isinstance(value, FileMetadata): - return False - return ctypes.addressof(self.handle.contents) == ctypes.addressof(value.handle.contents) - - def __ne__(self, value): - if not isinstance(value, FileMetadata): - return True - return ctypes.addressof(self.handle.contents) != ctypes.addressof(value.handle.contents) - @classmethod def _unregister(cls, f): handle = ctypes.cast(f, ctypes.c_void_p) @@ -373,9 +379,3 @@ class FileMetadata(object): if view is None: return None return binaryninja.binaryview.BinaryView(file_metadata = self, handle = view) - - def __setattr__(self, name, value): - try: - object.__setattr__(self, name, value) - except AttributeError: - raise AttributeError("attribute '%s' is read only" % name) |
