diff options
| author | Peter LaFosse <peter@vector35.com> | 2022-04-11 11:53:01 -0400 |
|---|---|---|
| committer | Peter LaFosse <peter@vector35.com> | 2022-04-14 09:22:49 -0400 |
| commit | 4425004475844466f2faa28bc1b136bf6da74977 (patch) | |
| tree | 0131826d2f1857f2de65b4f47a2486a4c69005d3 /python/binaryview.py | |
| parent | dc0626a11c30387993380a31db3b4bce23d81983 (diff) | |
Add some python api side caching to improve performance for some frequently accessed fields
Diffstat (limited to 'python/binaryview.py')
| -rw-r--r-- | python/binaryview.py | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/python/binaryview.py b/python/binaryview.py index 5cc920d5..5b58fa1d 100644 --- a/python/binaryview.py +++ b/python/binaryview.py @@ -1804,6 +1804,7 @@ class BinaryView: self._parse_only = False self._preload_limit = 5 self._platform = None + self._endianness = None def __enter__(self): return self @@ -2198,11 +2199,12 @@ class BinaryView: @property def platform(self) -> Optional['_platform.Platform']: """The platform associated with the current BinaryView (read/write)""" + if self._platform is not None: + return self._platform plat = core.BNGetDefaultPlatform(self.handle) if plat is None: return None - if self._platform is None: - self._platform = _platform.Platform(self.arch, handle=plat) + self._platform = _platform.Platform(self.arch, handle=plat) return self._platform @platform.setter @@ -2216,7 +2218,9 @@ class BinaryView: @property def endianness(self) -> Endianness: """Endianness of the binary (read-only)""" - return Endianness(core.BNGetDefaultEndianness(self.handle)) + if self._endianness is None: + self._endianness = Endianness(core.BNGetDefaultEndianness(self.handle)) + return self._endianness @property def relocatable(self) -> bool: |
