summaryrefslogtreecommitdiff
path: root/python/databuffer.py
diff options
context:
space:
mode:
authorPeter LaFosse <peter@vector35.com>2021-07-29 13:09:04 -0400
committerPeter LaFosse <peter@vector35.com>2021-09-05 10:09:10 -0400
commitc7b9b0330bc3b7121d8664a3eeec174739e5cc5e (patch)
treee75ffcd2900e4ce9e68d362eb285dca04094f522 /python/databuffer.py
parenta24b82f9b3d5dbb76f700664a97f3d4904acce30 (diff)
Fix data accessors to return bytes objects instead of chr
Diffstat (limited to 'python/databuffer.py')
-rw-r--r--python/databuffer.py13
1 files changed, 6 insertions, 7 deletions
diff --git a/python/databuffer.py b/python/databuffer.py
index ef8fc483..d99933a4 100644
--- a/python/databuffer.py
+++ b/python/databuffer.py
@@ -41,12 +41,11 @@ class DataBuffer:
def __len__(self):
return int(core.BNGetDataBufferLength(self.handle))
- def __getitem__(self, i):
+ def __getitem__(self, i) -> bytes:
if isinstance(i, tuple):
- result = ""
- source = bytes(self)
+ result = bytes()
for s in i:
- result += source[s]
+ result += self.__getitem__(s)
return result
elif isinstance(i, slice):
if i.step is not None:
@@ -54,7 +53,7 @@ class DataBuffer:
start = i[0]
stop = i[1]
if stop <= start:
- return ""
+ return b""
buf = ctypes.create_string_buffer(stop - start)
data = core.BNGetDataBufferContentsAt(self.handle, start)
assert data is not None, "core.BNGetDataBufferContentsAt returned None"
@@ -64,10 +63,10 @@ class DataBuffer:
return bytes(self)[i]
elif i < 0:
if i >= -len(self):
- return chr(core.BNGetDataBufferByte(self.handle, int(len(self) + i)))
+ return core.BNGetDataBufferByte(self.handle, int(len(self) + i))
raise IndexError("index out of range")
elif i < len(self):
- return chr(core.BNGetDataBufferByte(self.handle, int(i)))
+ return core.BNGetDataBufferByte(self.handle, int(i))
else:
raise IndexError("index out of range")