From a5de8c6d01cc7ae1644a5796adccbe72f2fd1950 Mon Sep 17 00:00:00 2001 From: Kwangsoo Yeo Date: Fri, 10 Nov 2023 17:28:44 -0800 Subject: [PATCH 1/2] check err status for rust --- binding/rust/src/cobra.rs | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/binding/rust/src/cobra.rs b/binding/rust/src/cobra.rs index febf7b3..cd6e8cf 100644 --- a/binding/rust/src/cobra.rs +++ b/binding/rust/src/cobra.rs @@ -55,7 +55,7 @@ type PvCobraProcessFn = unsafe extern "C" fn(object: *mut CCobra, pcm: *const i16, is_voiced: *mut f32) -> PvStatus; type PvCobraDeleteFn = unsafe extern "C" fn(object: *mut CCobra); type PvGetErrorStackFn = - unsafe extern "C" fn(message_stack: *mut *mut *mut c_char, message_stack_depth: *mut i32); + unsafe extern "C" fn(message_stack: *mut *mut *mut c_char, message_stack_depth: *mut i32)-> PvStatus; type PvFreeErrorStackFn = unsafe extern "C" fn(message_stack: *mut *mut c_char); type PvSetSdkFn = unsafe extern "C" fn(sdk: *const c_char); @@ -183,11 +183,18 @@ fn check_fn_call_status( let mut message_stack_ptr_ptr = addr_of_mut!(message_stack_ptr); let mut message_stack_depth: i32 = 0; - (vtable.pv_get_error_stack)( + let err_status = (vtable.pv_get_error_stack)( addr_of_mut!(message_stack_ptr_ptr), addr_of_mut!(message_stack_depth), ); + if err_status != PvStatus::SUCCESS { + return Err(CobraError::new( + CobraErrorStatus::LibraryError(err_status), + "Unable to get Cobra error state", + )); + }; + let mut message_stack = Vec::new(); for i in 0..message_stack_depth as usize { let message = CStr::from_ptr(*message_stack_ptr_ptr.add(i)); From 54c3e028afac567b8d952f7663778f82c071faa3 Mon Sep 17 00:00:00 2001 From: Kwangsoo Yeo Date: Fri, 10 Nov 2023 17:32:21 -0800 Subject: [PATCH 2/2] update workflow --- .github/workflows/rust.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 9482668..3ab0148 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -6,6 +6,7 @@ on: branches: [ main ] paths: - 'binding/rust/**' + - 'binding/rust/**/*.rs' - '!binding/rust/README.md' - 'lib/beaglebone/**' - 'lib/jetson/**' @@ -18,6 +19,7 @@ on: branches: [ main, 'v[0-9]+.[0-9]+' ] paths: - 'binding/rust/**' + - 'binding/rust/**/*.rs' - '!binding/rust/README.md' - 'lib/beaglebone/**' - 'lib/jetson/**'