From 53eed1fedbef8c778ba1ea03d6660a7f097886ca Mon Sep 17 00:00:00 2001 From: Rubens Brandao Date: Mon, 27 May 2024 17:45:25 -0300 Subject: allow `load_with_option` to accept json options --- rust/src/lib.rs | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) (limited to 'rust/src/lib.rs') diff --git a/rust/src/lib.rs b/rust/src/lib.rs index de38be4d..f20a33a9 100644 --- a/rust/src/lib.rs +++ b/rust/src/lib.rs @@ -171,8 +171,8 @@ pub use binaryninjacore_sys::BNEndianness as Endianness; use binaryview::BinaryView; use metadata::Metadata; use metadata::MetadataType; -use rc::Ref; use string::BnStrCompatible; +use string::IntoJson; // Commented out to suppress unused warnings // const BN_MAX_INSTRUCTION_LENGTH: u64 = 256; @@ -227,24 +227,32 @@ pub fn load(filename: S) -> Option( +pub fn load_with_options( filename: S, update_analysis_and_wait: bool, - options: Option>, + options: Option, ) -> Option> { let filename = filename.into_bytes_with_nul(); let options_or_default = if let Some(opt) = options { - opt + opt.get_json_string() + .ok()? + .into_bytes_with_nul() + .as_ref() + .to_vec() } else { Metadata::new_of_type(MetadataType::KeyValueDataType) + .get_json_string() + .ok()? + .as_ref() + .to_vec() }; let handle = unsafe { binaryninjacore_sys::BNLoadFilename( filename.as_ref().as_ptr() as *mut _, update_analysis_and_wait, - options_or_default.get_json_string().unwrap().as_ref().as_ptr() as *mut _, + options_or_default.as_ptr() as *mut core::ffi::c_char, None, ) }; -- cgit v1.3.1