diff options
Diffstat (limited to 'rust/src/mlil/block.rs')
| -rw-r--r-- | rust/src/mlil/block.rs | 63 |
1 files changed, 0 insertions, 63 deletions
diff --git a/rust/src/mlil/block.rs b/rust/src/mlil/block.rs deleted file mode 100644 index 015c7ba4..00000000 --- a/rust/src/mlil/block.rs +++ /dev/null @@ -1,63 +0,0 @@ -use std::ops::Range; - -use binaryninjacore_sys::BNGetMediumLevelILIndexForInstruction; - -use crate::basicblock::{BasicBlock, BlockContext}; -use crate::rc::Ref; - -use super::{MediumLevelILFunction, MediumLevelILInstruction}; - -pub struct MediumLevelILBlockIter { - function: Ref<MediumLevelILFunction>, - range: Range<u64>, -} - -impl Iterator for MediumLevelILBlockIter { - type Item = MediumLevelILInstruction; - - fn next(&mut self) -> Option<Self::Item> { - self.range - .next() - .map(|i| unsafe { - BNGetMediumLevelILIndexForInstruction(self.function.handle, i as usize) - }) - .map(|i| MediumLevelILInstruction::new(self.function.to_owned(), i)) - } -} - -pub struct MediumLevelILBlock { - pub(crate) function: Ref<MediumLevelILFunction>, -} - -impl core::fmt::Debug for MediumLevelILBlock { - fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result { - write!(f, "mlil_bb {:?}", self.function) - } -} - -impl BlockContext for MediumLevelILBlock { - type Iter = MediumLevelILBlockIter; - type Instruction = MediumLevelILInstruction; - - fn start(&self, block: &BasicBlock<Self>) -> MediumLevelILInstruction { - let expr_idx = unsafe { - BNGetMediumLevelILIndexForInstruction(self.function.handle, block.raw_start() as usize) - }; - MediumLevelILInstruction::new(self.function.to_owned(), expr_idx) - } - - fn iter(&self, block: &BasicBlock<Self>) -> MediumLevelILBlockIter { - MediumLevelILBlockIter { - function: self.function.to_owned(), - range: block.raw_start()..block.raw_end(), - } - } -} - -impl Clone for MediumLevelILBlock { - fn clone(&self) -> Self { - MediumLevelILBlock { - function: self.function.to_owned(), - } - } -} |
