diff options
Diffstat (limited to 'plugins/warp/src/plugin')
| -rw-r--r-- | plugins/warp/src/plugin/debug.rs | 7 | ||||
| -rw-r--r-- | plugins/warp/src/plugin/ffi.rs | 8 | ||||
| -rw-r--r-- | plugins/warp/src/plugin/ffi/function.rs | 9 | ||||
| -rw-r--r-- | plugins/warp/src/plugin/function.rs | 5 | ||||
| -rw-r--r-- | plugins/warp/src/plugin/workflow.rs | 4 |
5 files changed, 15 insertions, 18 deletions
diff --git a/plugins/warp/src/plugin/debug.rs b/plugins/warp/src/plugin/debug.rs index 24cdf1c3..399dba50 100644 --- a/plugins/warp/src/plugin/debug.rs +++ b/plugins/warp/src/plugin/debug.rs @@ -9,9 +9,10 @@ pub struct DebugFunction; impl FunctionCommand for DebugFunction { fn action(&self, _view: &BinaryView, func: &Function) { - if let Ok(lifted_il) = func.lifted_il() { - log::info!("{:#?}", build_function(func, &lifted_il, false)); - } + log::info!( + "{:#?}", + build_function(func, || func.lifted_il().ok(), false) + ); } fn valid(&self, _view: &BinaryView, _func: &Function) -> bool { diff --git a/plugins/warp/src/plugin/ffi.rs b/plugins/warp/src/plugin/ffi.rs index d78ca3c5..c3a8051c 100644 --- a/plugins/warp/src/plugin/ffi.rs +++ b/plugins/warp/src/plugin/ffi.rs @@ -124,12 +124,12 @@ pub unsafe extern "C" fn BNWARPGetAnalysisFunctionGUID( result: *mut BNWARPFunctionGUID, ) -> bool { let function = unsafe { Function::from_raw(analysis_function) }; - match function.lifted_il() { - Ok(lifted_il) => { - *result = cached_function_guid(&function, &lifted_il); + match cached_function_guid(&function, || function.lifted_il().ok()) { + Some(guid) => { + *result = guid; true } - Err(_) => false, + None => false, } } diff --git a/plugins/warp/src/plugin/ffi/function.rs b/plugins/warp/src/plugin/ffi/function.rs index 7563bd96..b37d613b 100644 --- a/plugins/warp/src/plugin/ffi/function.rs +++ b/plugins/warp/src/plugin/ffi/function.rs @@ -37,11 +37,10 @@ pub unsafe extern "C" fn BNWARPGetFunction( analysis_function: *mut BNFunction, ) -> *mut BNWARPFunction { let function = Function::from_raw(analysis_function); - let Ok(lifted_il) = function.lifted_il() else { - return std::ptr::null_mut(); - }; - let function = build_function(&function, &lifted_il, false); - Arc::into_raw(Arc::new(function)) as *mut BNWARPFunction + match build_function(&function, || function.lifted_il().ok(), false) { + Some(function) => Arc::into_raw(Arc::new(function)) as *mut BNWARPFunction, + None => std::ptr::null_mut(), + } } #[no_mangle] diff --git a/plugins/warp/src/plugin/function.rs b/plugins/warp/src/plugin/function.rs index 130e8582..a4fd2c10 100644 --- a/plugins/warp/src/plugin/function.rs +++ b/plugins/warp/src/plugin/function.rs @@ -47,11 +47,10 @@ pub struct CopyFunctionGUID; impl FunctionCommand for CopyFunctionGUID { fn action(&self, _view: &BinaryView, func: &Function) { - let Ok(lifted_il) = func.lifted_il() else { - log::error!("Could not get lifted il for copied function"); + let Some(guid) = cached_function_guid(func, || func.lifted_il().ok()) else { + log::error!("Could not get guid for copied function"); return; }; - let guid = cached_function_guid(func, &lifted_il); log::info!( "Function GUID for {:?}... {}", func.symbol().short_name(), diff --git a/plugins/warp/src/plugin/workflow.rs b/plugins/warp/src/plugin/workflow.rs index 735706cf..8da69342 100644 --- a/plugins/warp/src/plugin/workflow.rs +++ b/plugins/warp/src/plugin/workflow.rs @@ -220,9 +220,7 @@ pub fn insert_workflow() -> Result<(), ()> { let guid_activity = |ctx: &AnalysisContext| { let function = ctx.function(); - if let Some(lifted_il) = unsafe { ctx.lifted_il_function() } { - cached_function_guid(&function, &lifted_il); - } + cached_function_guid(&function, || unsafe { ctx.lifted_il_function() }); }; let guid_config = activity::Config::action( |
