static void s_cleanup_callback_data()

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);
}