in source/kms.c [507:548]
static int s_aws_array_list_to_json(
struct json_object *obj,
const char *const key,
const struct aws_array_list *array) {
AWS_PRECONDITION(obj);
AWS_PRECONDITION(aws_c_string_is_valid(key));
AWS_PRECONDITION(aws_array_list_is_valid(array));
struct json_object *arr = json_object_new_array();
if (arr == NULL) {
return AWS_OP_ERR;
}
for (size_t i = 0; i < aws_array_list_length(array); i++) {
struct aws_string **elem = NULL;
if (aws_array_list_get_at_ptr(array, (void **)&elem, i) != AWS_OP_SUCCESS) {
goto clean_up;
}
struct json_object *elem_arr = json_object_new_string(aws_string_c_str(*elem));
if (elem == NULL) {
goto clean_up;
}
if (json_object_array_add(arr, elem_arr) < 0) {
json_object_put(elem_arr);
goto clean_up;
}
}
if (json_object_object_add(obj, key, arr) < 0) {
goto clean_up;
}
return AWS_OP_SUCCESS;
clean_up:
json_object_put(arr);
return AWS_OP_ERR;
}