diff options
| author | Jacob Champion <jchampion@postgresql.org> | 2025-11-24 09:55:16 -0800 |
|---|---|---|
| committer | Jacob Champion <jchampion@postgresql.org> | 2025-11-24 09:55:16 -0800 |
| commit | f1881c7dd32cf5f429f6bd525b5cbacef3bb9c99 (patch) | |
| tree | 6cd0e340b1402c04e2ff5b90322627e795c68cf1 /src/interfaces/libpq-oauth/oauth-curl.c | |
| parent | bc32a12e0db2df203a9cb2315461578e08568b9c (diff) | |
Make some use of anonymous unions [libpq-oauth]
Make some use of anonymous unions, which are allowed as of C11, as
examples and encouragement for future code, and to test compilers.
This commit changes the json_field struct.
Reviewed-by: Nathan Bossart <nathandbossart@gmail.com>
Discussion: https://postgr.es/m/CAOYmi%2BnV25oC5uXFgWodydGrHkfWMDCLUcjbAreM3mNX%3DF2JWw%40mail.gmail.com
Diffstat (limited to 'src/interfaces/libpq-oauth/oauth-curl.c')
| -rw-r--r-- | src/interfaces/libpq-oauth/oauth-curl.c | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/src/interfaces/libpq-oauth/oauth-curl.c b/src/interfaces/libpq-oauth/oauth-curl.c index 08e300715da..bd0a656a166 100644 --- a/src/interfaces/libpq-oauth/oauth-curl.c +++ b/src/interfaces/libpq-oauth/oauth-curl.c @@ -439,7 +439,7 @@ struct json_field { char **scalar; /* for all scalar types */ struct curl_slist **array; /* for type == JSON_TOKEN_ARRAY_START */ - } target; + }; bool required; /* REQUIRED field, or just OPTIONAL? */ }; @@ -561,8 +561,8 @@ oauth_json_object_field_start(void *state, char *name, bool isnull) { field = ctx->active; - if ((field->type == JSON_TOKEN_ARRAY_START && *field->target.array) - || (field->type != JSON_TOKEN_ARRAY_START && *field->target.scalar)) + if ((field->type == JSON_TOKEN_ARRAY_START && *field->array) + || (field->type != JSON_TOKEN_ARRAY_START && *field->scalar)) { oauth_parse_set_error(ctx, "field \"%s\" is duplicated", field->name); @@ -706,7 +706,7 @@ oauth_json_scalar(void *state, char *token, JsonTokenType type) } /* ...and that a result has not already been set. */ - if (*field->target.scalar) + if (*field->scalar) { Assert(false); oauth_parse_set_error(ctx, @@ -715,8 +715,8 @@ oauth_json_scalar(void *state, char *token, JsonTokenType type) return JSON_SEM_ACTION_FAILED; } - *field->target.scalar = strdup(token); - if (!*field->target.scalar) + *field->scalar = strdup(token); + if (!*field->scalar) return JSON_OUT_OF_MEMORY; ctx->active = NULL; @@ -738,11 +738,11 @@ oauth_json_scalar(void *state, char *token, JsonTokenType type) } /* Note that curl_slist_append() makes a copy of the token. */ - temp = curl_slist_append(*field->target.array, token); + temp = curl_slist_append(*field->array, token); if (!temp) return JSON_OUT_OF_MEMORY; - *field->target.array = temp; + *field->array = temp; } } else @@ -878,8 +878,8 @@ parse_oauth_json(struct async_ctx *actx, const struct json_field *fields) while (fields->name) { if (fields->required - && !*fields->target.scalar - && !*fields->target.array) + && !*fields->scalar + && !*fields->array) { actx_error(actx, "field \"%s\" is missing", fields->name); goto cleanup; |
