summaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
Diffstat (limited to 'python')
-rw-r--r--python/binaryview.py9
-rw-r--r--python/databuffer.py13
2 files changed, 11 insertions, 11 deletions
diff --git a/python/binaryview.py b/python/binaryview.py
index 449d38cb..8984154a 100644
--- a/python/binaryview.py
+++ b/python/binaryview.py
@@ -1453,7 +1453,7 @@ class BinaryView:
finally:
core.BNFreeFunctionList(funcs, count.value)
- def __getitem__(self, i):
+ def __getitem__(self, i) -> bytes:
if isinstance(i, tuple):
result = bytes()
for s in i:
@@ -1466,19 +1466,19 @@ class BinaryView:
start = i[0]
stop = i[1]
if stop <= start:
- return ""
+ return b""
return self.read(start, stop - start)
elif i < 0:
if i >= -len(self):
value = self.read(int(len(self) + i), 1)
if len(value) == 0:
- return IndexError("index not readable")
+ raise IndexError("index not readable")
return value
raise IndexError("index out of range")
elif (i >= self.start) and (i < self.end):
value = self.read(int(i), 1)
if len(value) == 0:
- return IndexError("index not readable")
+ raise IndexError("index not readable")
return value
else:
raise IndexError("index out of range")
@@ -3985,6 +3985,7 @@ class BinaryView:
return []
for src_func in funcs:
src_arch = src_func.arch if arch is None else arch
+ assert src_arch is not None
ref_src = core.BNReferenceSource(src_func.handle, src_arch.handle, addr)
count = ctypes.c_ulonglong(0)
refs = core.BNGetCallees(self.handle, ref_src, count)
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")