json: Remove invalid typedef redefinition
The C standard does not allow for typedef redefinitions, even if they map to the same underlying type. In order to avoid including the jsmn.h in json.h and thus exposing jsmn's internals, we have exactly such a forward-declaring typedef in json.h. If enforcing the GNU99 C standard, clang may generate a warning about this non-standard construct. Fix the issue by using a simple "struct jsmntok" forward declaration instead of using a typedef. Signed-off-by: Patrick Steinhardt <ps@pks.im> Tested-by: Chuck Tuffli <chuck@freebsd.org> Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
This commit is contained in:
		
							parent
							
								
									74259522d7
								
							
						
					
					
						commit
						b35792dccb
					
				
					 1 changed files with 5 additions and 4 deletions
				
			
		|  | @ -36,13 +36,14 @@ enum grub_json_type | |||
| }; | ||||
| typedef enum grub_json_type grub_json_type_t; | ||||
| 
 | ||||
| typedef struct jsmntok jsmntok_t; | ||||
| /* Forward-declaration to avoid including jsmn.h. */ | ||||
| struct jsmntok; | ||||
| 
 | ||||
| struct grub_json | ||||
| { | ||||
|   jsmntok_t   *tokens; | ||||
|   char	      *string; | ||||
|   grub_size_t idx; | ||||
|   struct jsmntok *tokens; | ||||
|   char		 *string; | ||||
|   grub_size_t	 idx; | ||||
| }; | ||||
| typedef struct grub_json grub_json_t; | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue