in source/aws_profile.c [322:364]
static int s_profile_property_add_sub_property(
struct aws_profile_property *property,
const struct aws_byte_cursor *key,
const struct aws_byte_cursor *value,
const struct profile_file_parse_context *context) {
struct aws_string *key_string = aws_string_new_from_array(property->allocator, key->ptr, key->len);
if (key_string == NULL) {
return AWS_OP_ERR;
}
struct aws_string *value_string = aws_string_new_from_array(property->allocator, value->ptr, value->len);
if (value_string == NULL) {
goto on_failure;
}
int was_present = 0;
aws_hash_table_remove(&property->sub_properties, key_string, NULL, &was_present);
if (was_present) {
AWS_LOGF_WARN(
AWS_LS_SDKUTILS_PROFILE,
"subproperty \"%s\" of property \"%s\" had value overridden with new value",
key_string->bytes,
property->name->bytes);
s_log_parse_context(AWS_LL_WARN, context);
}
if (aws_hash_table_put(&property->sub_properties, key_string, value_string, NULL)) {
goto on_failure;
}
return AWS_OP_SUCCESS;
on_failure:
if (value_string) {
aws_string_destroy(value_string);
}
aws_string_destroy(key_string);
return AWS_OP_ERR;
}