diff options
Diffstat (limited to 'view/bintxt/src/ihex.rs')
| -rw-r--r-- | view/bintxt/src/ihex.rs | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/view/bintxt/src/ihex.rs b/view/bintxt/src/ihex.rs index bb694941..b1cbfb80 100644 --- a/view/bintxt/src/ihex.rs +++ b/view/bintxt/src/ihex.rs @@ -1,15 +1,15 @@ -use binaryninja::binaryview::*; -use binaryninja::custombinaryview::*; -use binaryninja::rc::Ref; -use binaryninja::segment::SegmentBuilder; -use ihex::Record; -use binaryninja::platform::Platform; -use binaryninja::settings::Settings; use crate::segment_after_address; use crate::segment_from_address; use crate::sort_and_merge_segments; use crate::MergedSegment; use crate::UnmergedSegment; +use binaryninja::binary_view::*; +use binaryninja::custom_binary_view::*; +use binaryninja::platform::Platform; +use binaryninja::rc::Ref; +use binaryninja::segment::SegmentBuilder; +use binaryninja::settings::{QueryOptions, Settings}; +use ihex::Record; fn parse_ihex(string: &str) -> Result<(Vec<u8>, IHexViewData)> { let mut reader = ihex::Reader::new(&string); @@ -101,7 +101,7 @@ impl CustomBinaryViewType for IHexViewConstructor { parent: &BinaryView, builder: CustomViewBuilder<'builder, Self>, ) -> Result<CustomView<'builder>> { - let bytes = parent.len(); + let bytes = parent.len() as usize; let mut buf = vec![0; bytes]; let bytes_read = parent.read(&mut buf, 0); if bytes_read != bytes { @@ -216,15 +216,16 @@ unsafe impl CustomBinaryView for IHexView { .contains_code(true), ); } - + // TODO: Because we detached from the raw view this setting will never be set. + let mut settings_query_opts = QueryOptions::new_with_view(&self.core); let _ = self.core.load_settings(self.type_name()).map(|s| { - let platform_name = s.get_string("loader.platform", Some(&self.core), None); + let platform_name = s.get_string_with_opts("loader.platform", &mut settings_query_opts); if let Some(platform) = Platform::by_name(platform_name) { self.set_default_platform(&platform); } }); - + Ok(()) } } |
