json: Get rid of casts for "jsmntok_t"
With the upstream change having landed that adds a name to the previously anonymous "jsmntok" typedef, we can now add a forward declaration for that struct in our code. As a result, we no longer have to store the "tokens" member of "struct grub_json" as a void pointer but can instead use the forward declaration, allowing us to get rid of casts of that field. Signed-off-by: Patrick Steinhardt <ps@pks.im> Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
This commit is contained in:
parent
3b81607b55
commit
e933feb578
2 changed files with 7 additions and 5 deletions
|
@ -95,7 +95,7 @@ grub_json_getsize (grub_size_t *out, const grub_json_t *json)
|
|||
{
|
||||
int size;
|
||||
|
||||
size = ((jsmntok_t *)json->tokens)[json->idx].size;
|
||||
size = json->tokens[json->idx].size;
|
||||
if (size < 0)
|
||||
return GRUB_ERR_OUT_OF_RANGE;
|
||||
|
||||
|
@ -106,7 +106,7 @@ grub_json_getsize (grub_size_t *out, const grub_json_t *json)
|
|||
grub_err_t
|
||||
grub_json_gettype (grub_json_type_t *out, const grub_json_t *json)
|
||||
{
|
||||
switch (((jsmntok_t *)json->tokens)[json->idx].type)
|
||||
switch (json->tokens[json->idx].type)
|
||||
{
|
||||
case JSMN_OBJECT:
|
||||
*out = GRUB_JSON_OBJECT;
|
||||
|
@ -142,7 +142,7 @@ grub_json_getchild (grub_json_t *out, const grub_json_t *parent, grub_size_t n)
|
|||
* array), as well. We thus add the children's size to n on
|
||||
* each iteration.
|
||||
*/
|
||||
p = &((jsmntok_t *)parent->tokens)[parent->idx];
|
||||
p = &parent->tokens[parent->idx];
|
||||
while (n--)
|
||||
n += p[offset++].size;
|
||||
|
||||
|
@ -197,7 +197,7 @@ get_value (grub_json_type_t *out_type, const char **out_string, const grub_json_
|
|||
p = &child;
|
||||
}
|
||||
|
||||
tok = &((jsmntok_t *) p->tokens)[p->idx];
|
||||
tok = &p->tokens[p->idx];
|
||||
p->string[tok->end] = '\0';
|
||||
|
||||
*out_string = p->string + tok->start;
|
||||
|
|
|
@ -36,9 +36,11 @@ enum grub_json_type
|
|||
};
|
||||
typedef enum grub_json_type grub_json_type_t;
|
||||
|
||||
typedef struct jsmntok jsmntok_t;
|
||||
|
||||
struct grub_json
|
||||
{
|
||||
void *tokens;
|
||||
jsmntok_t *tokens;
|
||||
char *string;
|
||||
grub_size_t idx;
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue