in src/native/aws_signing.c [54:108]
static void s_cleanup_callback_data(struct s_aws_sign_request_callback_data *callback_data) {
JNIEnv *env = aws_jni_get_thread_env(callback_data->jvm);
(*env)->DeleteGlobalRef(env, callback_data->java_signing_result_future);
if (callback_data->java_original_request != NULL) {
(*env)->DeleteGlobalRef(env, callback_data->java_original_request);
}
if (callback_data->java_original_chunk_body != NULL) {
(*env)->DeleteGlobalRef(env, callback_data->java_original_chunk_body);
}
if (callback_data->java_sign_header_predicate) {
(*env)->DeleteGlobalRef(env, callback_data->java_sign_header_predicate);
}
if (callback_data->native_request) {
struct aws_input_stream *input_stream = aws_http_message_get_body_stream(callback_data->native_request);
if (input_stream != NULL) {
aws_input_stream_destroy(input_stream);
}
aws_http_message_release(callback_data->native_request);
}
if (callback_data->original_message_signable) {
aws_signable_destroy(callback_data->original_message_signable);
}
if (callback_data->credentials) {
aws_credentials_release(callback_data->credentials);
}
if (callback_data->chunk_body_stream != NULL) {
aws_input_stream_destroy(callback_data->chunk_body_stream);
}
if (callback_data->trailing_headers != NULL) {
aws_http_headers_release(callback_data->trailing_headers);
}
aws_string_destroy(callback_data->region);
aws_string_destroy(callback_data->service);
aws_string_destroy(callback_data->signed_body_value);
if (callback_data->previous_signature.len > 0 && callback_data->java_previous_signature != NULL) {
aws_jni_byte_cursor_from_jbyteArray_release(
env, callback_data->java_previous_signature, callback_data->previous_signature);
}
if (callback_data->java_previous_signature != NULL) {
(*env)->DeleteGlobalRef(env, callback_data->java_previous_signature);
}
aws_mem_release(aws_jni_get_allocator(), callback_data);
}