(jni_env: *mut JNIEnv, this: jobject)
| 157 | } |
| 158 | |
| 159 | unsafe fn populate_trace_elements(jni_env: *mut JNIEnv, this: jobject) -> Result<jobject, String> { |
| 160 | // We will fill the stack trace field if it has changed and it's |
| 161 | // a non-null array with length greater than 0. |
| 162 | |
| 163 | // Grab the field value |
| 164 | let field_val = util::result_or_jni_ex((**jni_env).GetObjectField.unwrap()(jni_env, |
| 165 | this, |
| 166 | get_stack_trace_field(jni_env)?), jni_env)?; |
| 167 | // Defer to original method |
| 168 | let ret = get_our_trace_orig(jni_env, this)?; |
| 169 | |
| 170 | // Is the field value the same or did we get null back? |
| 171 | if ret.is_null() || ret == field_val { |
| 172 | return Result::Ok(ret); |
| 173 | } |
| 174 | |
| 175 | // Is the result array size over 0? |
| 176 | let ret_len = util::result_or_jni_ex((**jni_env).GetArrayLength.unwrap()(jni_env, ret), jni_env)?; |
| 177 | if ret_len == 0 { |
| 178 | return Result::Ok(ret); |
| 179 | } |
| 180 | |
| 181 | add_element_params(jni_env, this, ret, ret_len)?; |
| 182 | return Result::Ok(ret); |
| 183 | } |
| 184 | |
| 185 | unsafe 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, |
no test coverage detected