MCPcopy Create free account
hub / github.com/cretz/stackparam / add_element_params

Function add_element_params

src/native.rs:185–208  ·  view source on GitHub ↗
(jni_env: *mut JNIEnv, this: jobject, elems: jobjectArray, elems_len: jsize)

Source from the content-addressed store, hash-verified

183}
184
185unsafe fn add_element_params(jni_env: *mut JNIEnv, this: jobject, elems: jobjectArray, elems_len: jsize) -> Result<(), String> {
186 let params = util::result_or_jni_ex((**jni_env).GetObjectField.unwrap()(jni_env,
187 this,
188 get_stack_params_field(jni_env)?), jni_env)?;
189 // If it's null we just treat it as empty
190 let params_len = if params.is_null() {
191 0
192 } else {
193 util::result_or_jni_ex((**jni_env).GetArrayLength.unwrap()(jni_env, params), jni_env)?
194 };
195
196 for index in 0..elems_len {
197 let elem = util::result_or_jni_ex((**jni_env).GetObjectArrayElement.unwrap()(jni_env, elems, index), jni_env)?;
198 if !elem.is_null() {
199 let param = if index >= params_len {
200 ptr::null_mut()
201 } else {
202 util::result_or_jni_ex((**jni_env).GetObjectArrayElement.unwrap()(jni_env, params, index), jni_env)?
203 };
204 set_elem_param_info(jni_env, param, elem)?;
205 }
206 }
207 return Result::Ok(());
208}
209
210unsafe fn get_elem_param_info_field(jni_env: *mut JNIEnv) -> Result<jfieldID, String> {
211 static mut PARAM_INFO_FIELD: jfieldID = 0 as jfieldID;

Callers 1

populate_trace_elementsFunction · 0.85

Calls 3

result_or_jni_exFunction · 0.85
get_stack_params_fieldFunction · 0.85
set_elem_param_infoFunction · 0.85

Tested by

no test coverage detected