diff options
| author | Galen Williamson <galen@vector35.com> | 2021-07-07 17:11:22 -0400 |
|---|---|---|
| committer | Galen Williamson <galen@vector35.com> | 2021-07-07 17:11:22 -0400 |
| commit | 468d9184a343beeac9cac2e492a1f842a6a3234e (patch) | |
| tree | 9e47d73248577c504bb52904af39273070287c51 /python | |
| parent | be766bb6b82e5600ef56e8a3610229298669e8cb (diff) | |
Added slicing support to __getitem__ in all basic block classes
Diffstat (limited to 'python')
| -rw-r--r-- | python/basicblock.py | 2 | ||||
| -rw-r--r-- | python/highlevelil.py | 2 | ||||
| -rw-r--r-- | python/lowlevelil.py | 2 | ||||
| -rw-r--r-- | python/mediumlevelil.py | 2 |
4 files changed, 8 insertions, 0 deletions
diff --git a/python/basicblock.py b/python/basicblock.py index ad4eef43..4b1633a1 100644 --- a/python/basicblock.py +++ b/python/basicblock.py @@ -168,6 +168,8 @@ class BasicBlock(object): def __getitem__(self, i): self._buildStartCache() + if isinstance(i, slice): + return [self[index] for index in range(*i.indices(len(self._instStarts)))] start = self._instStarts[i] length = self._instLengths[i] data = self._view.read(start, length) diff --git a/python/highlevelil.py b/python/highlevelil.py index 046d73a6..d3312474 100644 --- a/python/highlevelil.py +++ b/python/highlevelil.py @@ -976,6 +976,8 @@ class HighLevelILBasicBlock(basicblock.BasicBlock): def __getitem__(self, idx): size = self.end - self.start + if isinstance(idx, slice): + return [self[index] for index in range(*idx.incides(size))] if idx > size or idx < -size: raise IndexError("list index is out of range") if idx >= 0: diff --git a/python/lowlevelil.py b/python/lowlevelil.py index 310d9d79..6b9d09b4 100644 --- a/python/lowlevelil.py +++ b/python/lowlevelil.py @@ -3089,6 +3089,8 @@ class LowLevelILBasicBlock(basicblock.BasicBlock): def __getitem__(self, idx): size = self.end - self.start + if isinstance(idx, slice): + return [self[index] for index in range(*idx.incides(size))] if idx > size or idx < -size: raise IndexError("list index is out of range") if idx >= 0: diff --git a/python/mediumlevelil.py b/python/mediumlevelil.py index 8d552b64..d0190f95 100644 --- a/python/mediumlevelil.py +++ b/python/mediumlevelil.py @@ -1258,6 +1258,8 @@ class MediumLevelILBasicBlock(basicblock.BasicBlock): def __getitem__(self, idx): size = self.end - self.start + if isinstance(idx, slice): + return [self[index] for index in range(*idx.incides(size))] if idx > size or idx < -size: raise IndexError("list index is out of range") if idx >= 0: |
