diff --git a/grub-core/lib/json/json.c b/grub-core/lib/json/json.c index 15c0d9949..694af4f3a 100644 --- a/grub-core/lib/json/json.c +++ b/grub-core/lib/json/json.c @@ -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; diff --git a/grub-core/lib/json/json.h b/grub-core/lib/json/json.h index 358e4bca3..d9f99454d 100644 --- a/grub-core/lib/json/json.h +++ b/grub-core/lib/json/json.h @@ -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; };