diff options
| author | Peter LaFosse <peter@vector35.com> | 2022-01-18 09:48:47 -0500 |
|---|---|---|
| committer | Peter LaFosse <peter@vector35.com> | 2022-01-19 10:53:46 -0500 |
| commit | 6f5fd10c589cd7bf525d91a60a0dc66bc4f93e25 (patch) | |
| tree | cb5d1f10dbc65bd5bd96e5b7eb6551190f8783d7 /python/databuffer.py | |
| parent | 12b55e3265ea0538b911be910b8300af807c4695 (diff) | |
Many type check fixes
Diffstat (limited to 'python/databuffer.py')
| -rw-r--r-- | python/databuffer.py | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/python/databuffer.py b/python/databuffer.py index 9346f660..fea7bb82 100644 --- a/python/databuffer.py +++ b/python/databuffer.py @@ -26,7 +26,7 @@ from . import _binaryninjacore as core DataBufferInputType = Union[str, bytes, 'DataBuffer', int] class DataBuffer: - def __init__(self, contents:bytes=b"", handle=None): + def __init__(self, contents:Union[str, bytes, 'DataBuffer', int]=b"", handle=None): if handle is not None: self.handle = core.handle_of_type(handle, core.BNDataBuffer) elif isinstance(contents, int): @@ -36,6 +36,7 @@ class DataBuffer: elif isinstance(contents, str): self.handle = core.BNCreateDataBuffer(contents.encode("utf-8"), len(contents.encode("utf-8"))) else: + assert isinstance(contents, bytes) self.handle = core.BNCreateDataBuffer(contents, len(contents)) def __del__(self): @@ -67,10 +68,10 @@ class DataBuffer: return bytes(self)[i] elif i < 0: if i >= -len(self): - return core.BNGetDataBufferByte(self.handle, int(len(self) + i)) + return core.BNGetDataBufferByte(self.handle, int(len(self) + i)).to_bytes(1, "little") raise IndexError("index out of range") elif i < len(self): - return core.BNGetDataBufferByte(self.handle, int(i)) + return core.BNGetDataBufferByte(self.handle, int(i)).to_bytes(1, "little") else: raise IndexError("index out of range") @@ -139,13 +140,13 @@ class DataBuffer: return core.BNDataBufferToEscapedString(self.handle) def unescape(self) -> 'DataBuffer': - return DataBuffer(handle=core.BNDecodeEscapedString(bytes(self))) + return DataBuffer(handle=core.BNDecodeEscapedString(str(self))) def base64_encode(self) -> str: return core.BNDataBufferToBase64(self.handle) def base64_decode(self) -> 'DataBuffer': - return DataBuffer(handle = core.BNDecodeBase64(bytes(self))) + return DataBuffer(handle = core.BNDecodeBase64(str(self))) def zlib_compress(self) -> Optional['DataBuffer']: buf = core.BNZlibCompress(self.handle) |
