diff --git a/common/ani_rs/src/env.rs b/common/ani_rs/src/env.rs index b1913a40c9fe53e0d62b5d6c2fa2a3f599458158..96409096c19d893adcb0e2e376fa4b2a2f8e6482 100644 --- a/common/ani_rs/src/env.rs +++ b/common/ani_rs/src/env.rs @@ -12,7 +12,7 @@ // limitations under the License. use std::{ - ffi::{c_void, CStr}, + ffi::{c_void, CStr, CString}, marker::PhantomData, ops::Deref, ptr::null_mut, @@ -815,11 +815,12 @@ impl<'local> AniEnv<'local> { index: usize, ) -> Result, AniError> { let mut ret = null_mut() as ani_ref; + let c_field_name = CString::new(format!("${}", index)).expect("CString::new failed"); let res = unsafe { - (**self.inner).TupleValue_GetItem_Ref.unwrap()( + (**self.inner).Object_GetFieldByName_Ref.unwrap()( self.inner, tuple.as_raw(), - index, + c_field_name.as_ptr(), &mut ret as *mut _, ) };