From f06a8008a1f44fde0e77c693620d5128a6b8edc9 Mon Sep 17 00:00:00 2001 From: Rubens Brandão Date: Thu, 29 Jan 2026 15:27:20 -0300 Subject: [Rust] Make TagReference optionally take architecture and function (#7899) --- rust/src/tags.rs | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'rust/src') diff --git a/rust/src/tags.rs b/rust/src/tags.rs index 49dfae4a..bb0de957 100644 --- a/rust/src/tags.rs +++ b/rust/src/tags.rs @@ -16,6 +16,7 @@ use binaryninjacore_sys::*; use std::fmt::{Debug, Formatter}; +use std::ptr::NonNull; use crate::architecture::CoreArchitecture; use crate::binary_view::BinaryView; @@ -257,8 +258,8 @@ unsafe impl Sync for TagType {} #[derive(Clone, PartialEq)] pub struct TagReference { - pub arch: CoreArchitecture, - pub func: Ref, + pub arch: Option, + pub func: Option>, pub addr: u64, pub auto_defined: bool, pub reference_type: TagReferenceType, @@ -271,8 +272,10 @@ impl From<&BNTagReference> for TagReference { reference_type: value.refType, auto_defined: value.autoDefined, tag: unsafe { Tag::from_raw(value.tag).to_owned() }, - arch: unsafe { CoreArchitecture::from_raw(value.arch) }, - func: unsafe { Function::from_raw(value.func).to_owned() }, + arch: NonNull::new(value.arch) + .map(|arch| unsafe { CoreArchitecture::from_raw(arch.as_ptr()) }), + func: NonNull::new(value.func) + .map(|func| unsafe { Function::from_raw(func.as_ptr()).to_owned() }), addr: value.addr, } } -- cgit v1.3.1