From 68b00cdf45551ba64c4f7217963055fc5a1a0cc4 Mon Sep 17 00:00:00 2001 From: Mason Reed Date: Fri, 30 May 2025 16:39:32 -0400 Subject: [Rust] Express expression vs instruction index for MLIL and HLIL APIs This was done to fix unintended behavior using an instruction or expression index in place of the other. Fixes https://github.com/Vector35/binaryninja-api/issues/6897 --- rust/src/medium_level_il/lift.rs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'rust/src/medium_level_il/lift.rs') diff --git a/rust/src/medium_level_il/lift.rs b/rust/src/medium_level_il/lift.rs index 399bda78..e563f26d 100644 --- a/rust/src/medium_level_il/lift.rs +++ b/rust/src/medium_level_il/lift.rs @@ -1,5 +1,5 @@ use super::operation::*; -use super::{MediumLevelILFunction, MediumLevelInstructionIndex}; +use super::{MediumLevelExpressionIndex, MediumLevelILFunction, MediumLevelInstructionIndex}; use crate::architecture::CoreIntrinsic; use crate::rc::Ref; use crate::variable::{ConstantData, SSAVariable, Variable}; @@ -27,7 +27,8 @@ pub enum MediumLevelILLiftedOperand { pub struct MediumLevelILLiftedInstruction { pub function: Ref, pub address: u64, - pub index: MediumLevelInstructionIndex, + pub instr_index: MediumLevelInstructionIndex, + pub expr_index: MediumLevelExpressionIndex, pub size: usize, pub kind: MediumLevelILLiftedInstructionKind, } @@ -36,7 +37,8 @@ impl Debug for MediumLevelILLiftedInstruction { fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { f.debug_struct("MediumLevelILLiftedInstruction") .field("address", &self.address) - .field("index", &self.index) + .field("instr_index", &self.instr_index) + .field("expr_index", &self.expr_index) .field("size", &self.size) .field("kind", &self.kind) .finish() -- cgit v1.3.1