summaryrefslogtreecommitdiff
path: root/rust/src/custombinaryview.rs
diff options
context:
space:
mode:
authorMason Reed <mason@vector35.com>2024-08-27 13:12:44 -0400
committerMason Reed <mason@vector35.com>2024-08-27 17:19:25 -0400
commitfeca74615ab3e10e7e256630946d830d07414d08 (patch)
tree860978bbb66722c0240ece286c63298cb2faf534 /rust/src/custombinaryview.rs
parent1a13e37e82714d9fd056c96e01cbde44ceaccac8 (diff)
Fix custom rust binary view's crashing when opening with options
Diffstat (limited to 'rust/src/custombinaryview.rs')
-rw-r--r--rust/src/custombinaryview.rs44
1 files changed, 14 insertions, 30 deletions
diff --git a/rust/src/custombinaryview.rs b/rust/src/custombinaryview.rs
index b930c780..c427b6ab 100644
--- a/rust/src/custombinaryview.rs
+++ b/rust/src/custombinaryview.rs
@@ -111,8 +111,8 @@ where
let data = BinaryView::from_raw(BNNewViewReference(data));
match view_type.load_settings_for_data(&data) {
- Ok(settings) => Ref::into_raw(settings).handle,
- _ => ptr::null_mut() as *mut _,
+ Some(settings) => Ref::into_raw(settings).handle,
+ None => ptr::null_mut() as *mut _,
}
})
}
@@ -156,28 +156,23 @@ where
pub trait BinaryViewTypeBase: AsRef<BinaryViewType> {
fn is_valid_for(&self, data: &BinaryView) -> bool;
- fn is_deprecated(&self) -> bool;
+ fn is_deprecated(&self) -> bool {
+ false
+ }
- fn default_load_settings_for_data(&self, data: &BinaryView) -> Result<Ref<Settings>> {
+ fn default_load_settings_for_data(&self, data: &BinaryView) -> Option<Ref<Settings>> {
let settings_handle =
unsafe { BNGetBinaryViewDefaultLoadSettingsForData(self.as_ref().0, data.handle) };
if settings_handle.is_null() {
- Err(())
+ None
} else {
- unsafe { Ok(Settings::from_raw(settings_handle)) }
+ unsafe { Some(Settings::from_raw(settings_handle)) }
}
}
-
- fn load_settings_for_data(&self, data: &BinaryView) -> Result<Ref<Settings>> {
- let settings_handle =
- unsafe { BNGetBinaryViewLoadSettingsForData(self.as_ref().0, data.handle) };
-
- if settings_handle.is_null() {
- Err(())
- } else {
- unsafe { Ok(Settings::from_raw(settings_handle)) }
- }
+
+ fn load_settings_for_data(&self, _data: &BinaryView) -> Option<Ref<Settings>> {
+ None
}
}
@@ -265,24 +260,13 @@ impl BinaryViewTypeBase for BinaryViewType {
unsafe { BNIsBinaryViewTypeDeprecated(self.0) }
}
- fn default_load_settings_for_data(&self, data: &BinaryView) -> Result<Ref<Settings>> {
- let settings_handle =
- unsafe { BNGetBinaryViewDefaultLoadSettingsForData(self.0, data.handle) };
-
- if settings_handle.is_null() {
- Err(())
- } else {
- unsafe { Ok(Settings::from_raw(settings_handle)) }
- }
- }
-
- fn load_settings_for_data(&self, data: &BinaryView) -> Result<Ref<Settings>> {
+ fn load_settings_for_data(&self, data: &BinaryView) -> Option<Ref<Settings>> {
let settings_handle = unsafe { BNGetBinaryViewLoadSettingsForData(self.0, data.handle) };
if settings_handle.is_null() {
- Err(())
+ None
} else {
- unsafe { Ok(Settings::from_raw(settings_handle)) }
+ unsafe { Some(Settings::from_raw(settings_handle)) }
}
}
}