MCPcopy Create free account
hub / github.com/Vector35/binaryninja-api / __setitem__

Method __setitem__

python/binaryview.py:2686–2714  ·  view source on GitHub ↗
(self, i, value)

Source from the content-addressed store, hash-verified

2684 raise IndexError("index out of range")
2685
2686 def __setitem__(self, i, value):
2687 if isinstance(i, slice):
2688 if i.step is not None:
2689 raise IndexError("step not supported on assignment")
2690 i = i.indices(self.end)
2691 start = i[0]
2692 stop = i[1]
2693 if stop < start:
2694 stop = start
2695 if len(value) != (stop - start):
2696 self.remove(start, stop - start)
2697 self.insert(start, value)
2698 else:
2699 self.write(start, value)
2700 elif i < 0:
2701 if i >= -self.length:
2702 if len(value) != 1:
2703 raise ValueError("expected single byte for assignment")
2704 if self.write(self.start + int(self.length + i), value) != 1:
2705 raise IndexError("index not writable")
2706 else:
2707 raise IndexError("index out of range")
2708 elif (i >= self.start) and (i < self.end):
2709 if len(value) != 1:
2710 raise ValueError("expected single byte for assignment")
2711 if self.write(int(i), value) != 1:
2712 raise IndexError("index not writable")
2713 else:
2714 raise IndexError("index out of range")
2715
2716 def __contains__(self, i: int):
2717 for s in self.segments:

Callers

nothing calls this directly

Calls 3

removeMethod · 0.95
insertMethod · 0.95
writeMethod · 0.95

Tested by

no test coverage detected